Java语言-概念-Swing容器
容器java.awt.Container是Component的子类,一个容器可以容纳多个组件,并使它们成为一个整体。容器可以简化图形化界面的设计,以整体结构来布置界面。
Swing常用的顶层容器有JFrame、JApplet、JDialog、JWindow共4个。
JFrame框架
JFrame是与AWT中的Frame相对应的Swing组件。JFrame上面只能有一个唯一的组件,这个组件为JRootPane,调用JFrame.getContentPane()方法可获得JFrame中内置的JRootPane对象。
应用程序不能直接在JFrame实例对象上增加组件和设置布局管理器,而应该在JRootPane对象上增加子组件和设置布局管理器。
调用JFrame的setDefaultCloseOperation方法,可以设置单击窗口上的关闭按钮时的事件处理方式,例如,当设置值为JFrame.EXIT_ON_CLOSE时,单击JFrame窗口上的关闭按钮,将直接关闭JFrame框架窗口并结束程序运行。
【例】使用JFrame创建的框架窗口。
package Swing;
import java.awt.*;//加载java.awt类库里的所有类
import javax.swing.*;//加载javax.swing类库里的所有类
public class JFrame_Exam extends JFrame {
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame_Exam mainJFrame=new JFrame_Exam();
mainJFrame.setTitle("JFrame框架实例!");//创建一个JFrame并设置标题
mainJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭动作
mainJFrame.setSize(300, 300);//设置JFrame的大小,默认为(0,0)
mainJFrame.setLocationRelativeTo(null);//使窗口显示在屏幕*
mainJFrame.getContentPane().setLayout(new FlowLayout());
//设置JFrame的内容面板背景,默认为绿色
mainJFrame.getContentPane().setBackground(Color.green);
JLabel lbl=new JLabel("大家好!我是一个标签");
JButton btn=new JButton("按钮");
mainJFrame.getContentPane().add(lbl);//将标签对象lbl加入到内容面板中
mainJFrame.getContentPane().add(btn);//将按钮对象btn加入到内容面板中
mainJFrame.setVisible(true);//设置JFrame为可见,默认为不可见
}
}
JPanel面板
面板(JPanel)是一个轻量级容器组件,是一种没有标题的中间容器,用于容纳界面元素,以便在布局管理器的设置下容纳更多的组件,实现容器的嵌套。JPanel、JScrollPane、JSplitPane和JInternalJFrame都属于常用的中间容器,是轻量级组件。JPanel的默认布局管理器是FlowLayout。这类容器不能独立存在,必须通过add()方法添加到一个顶层容器或存在于顶层容器的一个中间容器。
JPanel类、AbstractButton类、JLabel、JList、JComboBox类、JTextComponent类等均是JComponent类的子类。它们均继承了JComponent类中的许多常用方法。
【例】在框架窗口在加入JPanel面板。
package Swing;
import java.awt.*;
import javax.swing.*;
public class JPanel_Exam {
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame mainJFrame=new JFrame("框架+面板示例!");
mainJFrame.setSize(240, 240);
mainJFrame.setLocation(200, 200);
Container container=mainJFrame.getContentPane();
container.setBackground(Color.lightGray);
container.setLayout(null);
JPanel pnl=new JPanel();
pnl.setSize(190, 180);//设置pnl的大小
pnl.setBackground(Color.green);//设置pnl的背景
pnl.setLocation(20, 20);//设置pnl面板的位置
JButton btn=new JButton("我是一个按钮,单击我");
btn.setSize(170, 40);//设置btn的大小
btn.setBackground(Color.yellow);//设置btn的背景色
btn.setLocation(10, 50);//设置btn的位置
pnl.setLayout(null);//取消pnl的默认布局管理器
pnl.add(btn);//将命令按钮btn加入到面板pnl中
container.add(pnl);//将面板pnl加入到窗口默认面板中
mainJFrame.setVisible(true);
}
}
本文地址:https://blog.csdn.net/weixin_47423314/article/details/107593648