Java基础入门 Swing中间容器的使用

目录
  • Java基础入门 Swing中间容器
    • 下面举例说明一下JScrollPane的方法
  • Java Swing顶层容器类
    • Swing拥有三个常用的顶层容器类

Java基础入门 Swing中间容器

在Swing中不仅有JFrame、JDialog这样的顶级窗口,还拥有一些中间容器,这些容器不能单独存在,必须依存在顶级窗口中。最常见的是JPanel、JScrollPane。

  • JPanel:JPanel和AWT中的Panel组件使用方法基本一致,他是一个无边框不能被放大、移动、关闭的面板,它的默认布局管理器是FlowLayout,当然这是可以使用setLayout()方法重新设置的
  • JScrollPane:与JPanel不同的是,JScrollPane是一个带有滚动条的面板容器而且这个面板只能添加一个组件,如果想添加多个组件就必须先把多个组件添加到Panel中再将Panel添加到JScroollPane中

下面举例说明一下JScrollPane的方法

JScrollPane的构造方法及方法
方法声明 功能描述
JScrollPane() 创建一个空的JScrollPane面板
JScrollPane(Component view) 创建一个显示指定组件的JScrollPane面板,只要组件大小超过面板大小就会出现水平和垂直滚动条
JScrollPane(Component view,int vsbPolicy,int hsbPoliy) 创建一个显示指定容器的JScrollPane面板
import java.awt.*;
import javax.swing.*;
public class Main extends JFrame{
	public Main(){
		this.setTitle("PanelDemo");
		JScrollPane scrollPane=new JScrollPane();
		//设置水平进度条需要时出现
		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		//设置垂直进度条一直出现
		scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

		JPanel panel=new JPanel();
		panel.add(new JButton("按钮1"));
		panel.add(new JButton("按钮2"));
		panel.add(new JButton("按钮3"));
		panel.add(new JButton("按钮4"));
		for(int i=5;i<100;i++){
			panel.add(new JButton("按钮"+i));
		}

		//将JPanel面板添加在滚动面板上显示
		scrollPane.setViewportView(panel);
		//将滚动面板添加到窗体的中部(CENTER)
		this.add(scrollPane,BorderLayout.CENTER);

		//创建窗体可关闭按钮
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(400,250);
		this.setVisible(true);
	}
	public static void main(String[] args)throws Exception{
       new Main();
	}
}

Java Swing顶层容器类

Swing拥有三个常用的顶层容器类

  • JFrame
  • JDialog
  • JApplet

1,任何画面类,必须是容器类的分支,任何界面树的顶层容器类必须是上面三个中的一个。

2,任何画面组件只能被容器类引用一次,如果复制他们到另外的容器类,它会被从第一个容器类中删除然后放在第二个容器类中。

3,顶层容器类都含有一个内容面板,包含了顶层容器要显示的内容

4,顶层容器类通常含有一个Menu Bar, 这个Menu Bar可以带来更好的使用体验,比如在Mac系统中,Menu bar会显示在screen顶上而不是app顶上。

注意,JPanel默认的排版方式是FlowLayout

但是可以使用顶层容器类的setContentPanel替换成自定义布局的JPanel类。

示例代码:

package com.jesse.kotlin.com.jesse.gui
import java.awt.BorderLayout
import java.awt.Dimension
import javax.swing.*

class WindowMain {
    private val rootContainer = JFrame("GUI Demo")
    fun buildGui(){
        rootContainer.defaultCloseOperation = JFrame.EXIT_ON_CLOSE
        var label = JLabel("Hello world")
        rootContainer.contentPane.add(label, BorderLayout.CENTER)
        rootContainer.preferredSize = Dimension(400, 300)

        var menuPanel:JMenuBar = JMenuBar()
        menuPanel.add(JMenu("help"))
        rootContainer.jMenuBar = menuPanel

        rootContainer.pack()
        rootContainer.isVisible = true
    }
}
fun main(args: Array<String>) {
    SwingUtilities.invokeLater {
        WindowMain().buildGui()
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java Swing最详细基础知识总结

    一.简介 Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕显示元素.它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT.它们是JFC的一部分.它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而是仅仅在表面上模仿它们.这意味着你可以在任意平台上使用JAVA支持的任意面板.轻量级

  • java中Swing五种常见的布局方式

    1. 边界布局(BorderLayout) 2.流式布局(FlowLayout) 3.网格布局(GridLayout) 4.盒子布局(BoxLaYout) 5.空布局(null) 还有其他两种布局,分别是GridBagLayout(网格包布局).CardLayout(卡片布局) 注意:JFrame和JDialog默认布局为BorderLayout,JPanel和Applet默认布局为FlowLayout 边界布局示例代码: import java.awt.BorderLayout; import

  • Java图形化界面设计之容器(JFrame)详解

    Java图形化界面设计--容器(JFrame) 程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势,在命令提示符下运行的程序可以让我们了解java程序的基本知识体系结构,现在就进入java图形化界面编程. 一.Java基本类(JFC) Java基本类("JavaFoundationClasses",JFC),由一些软件包组成.这些软件包主要包括下面一些应用程序接口(API): ·抽象窗口工具集(AWT)(1.1及以上版本). ·Swing构件. ·Jav

  • Java基础入门 Swing中间容器的使用

    目录 Java基础入门 Swing中间容器 下面举例说明一下JScrollPane的方法 Java Swing顶层容器类 Swing拥有三个常用的顶层容器类 Java基础入门 Swing中间容器 在Swing中不仅有JFrame.JDialog这样的顶级窗口,还拥有一些中间容器,这些容器不能单独存在,必须依存在顶级窗口中.最常见的是JPanel.JScrollPane. JPanel:JPanel和AWT中的Panel组件使用方法基本一致,他是一个无边框不能被放大.移动.关闭的面板,它的默认布局

  • Java基础入门总结之序列化和反序列化

    目录 基本概念 序列化 反序列化 序列化和反序列化总结 自定义序列化策略 Externalizable transient 静态变量 序列化ID 破坏单例 总结 基本概念 Java中创建对象时,一旦程序终止,创建的对象可能就不存在.要想使得对象能够在程序不运行的状态下依然能够保存对象的信息,这时就需要用到序列化机制 序列化机制: 一个对象可以被表示为一个字节序列,包括: 对象的数据 对象的类型信息 存储在对象中的数据类型 将可序列化对象写入文件后,可以从文件中读取出来,根据对象的各种信息在内存中

  • Java基础入门语法--String类

    今天带大家了解一下java的基础法语---String 字符串是我们以后工作中非常常用到的类型. 使用起来都非常简单方便, 我们一定要使用熟练. 那么C语言中是否有字符串类型? 答案是 " 没有 " !! char *p = " hello"; 那么p 的类型是一个字符串类型么? 不是,p是一个指针!! 而在 Java当中 是有 字符串类型的--String 一.定义方式 创建字符串的方式有很多种,常见的构造 String 的方式如以下: 方式一:直接赋值法 Str

  • Java基础入门篇——While循环

    循环结构分两大类,一类是当型,一类是直到型. 当型: 当布尔值表达式条件为True时,反复执行某语句,当布尔表达式的值为False时才停止循环,例如:while 与 for循环. 直到型: 先执行某语句,在判断布尔表达式,如果为true,再执行某语句,如此反复,直到布尔表达式条件为false时才停止循环,例如do - while循环. 语法结构: while (布尔表达式) { 循环体; } 一.循环结构语句 1.在我们实际生活中经常会把同一件事情重复做好几次.例如:潮汕人喜欢喝茶,只要在喝茶的

  • java基础入门之IO流

    目录 io学习框架: 文件: Io流的原理: 节点流和处理流: BufferWriter: 处理字节的处理流: 标准输入和输出: 转换流: 打印流: Properties类: 总结 io学习框架: 文件: 保存数据的地方. 1)常见文件对象的相关构造器和方法: 当进行File file = new File(filePath);只是在内存上有一个文件对象: 只有file.createNewFile();才会在磁盘创建文件 获取文件的相关信息: utf8中,一个汉字是三个字节,所以当用字节流的re

  • java新人基础入门之递归调用

    一.递归概念 递归本质:程序调用自身的编程技巧叫做递归. 程序调用自身的编程技巧称为递归( recursion).递归做为一种算法在程序设计语言中广泛应用. 一个过程或函数在其定义或说明中有直接或间接调: 用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过: 程所需要的多次重复计算,大大地减少了程序的代码量.递归的能力在于用有限的语句来定义对象的无限集合. 二.递归的三个条件: 边界条件 递归前进段 递归返回段 当

  • Java基础之Spring5的核心之一IOC容器

    一.什么是IOC 1)控制反转,把创建对象和对象的调用过程交给Spring 管理. 2)使用IOC的目的,为了降低耦合度. 二.IOC的底层原理 XML解析.工厂模式.反射 三.IOC思想 基于IOC容器完成,IOC容器底层就是对象工厂. 四.Spring 提供IOC容器实现两种方式:(两个接口) (1)BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员使用 特点:加载配置文件的时候不会创建对象,在获取(使用)对象才去创建. (2)ApplicationCo

  • Java基础之容器LinkedList

    一.LinkedList的整体结构 1.1.LinkedList的继承关系 public class LinkedList<E> extends AbstractSequentialList <E> implements List<E>, Deque<E> LinkedList具备AbstractSequentialList的特点:AbstractSequentialList 只支持按次序访问,而不像 AbstractList 那样支持随机访问 Linked

  • Java基础之容器Vector详解

    一.前言 知识补充:Arrays.copyOf函数: public static int[] copyOf(int[] original, int newLength) { int[] copy = new int[newLength]; System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; } 可见copyOf()在内部新建一个数组,调用arrayCopy()将ori

  • Java基础学习之Swing事件监听

    一.初始代码架构 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Btn extends JFrame{ public static void main(String []args){ JFrame f = new JFrame("事件监听测试"); f.setBounds(0,0,300,400); f.addWindowListener(new WindowAdapter(

随机推荐