Java Swing之JFrame和JPanel
JFrame窗口容器和JPanel面板容器
Java Swing中,任何一个Swing组件都需要置于一个顶层容器中。JFrame窗口和JPanel面板是常用的顶层容器。JFrame中的顶层容器主要有JFrame、JDialog 和 JApplet。
JFrame(窗口容器)
Java GUI程序基本思路是以JFrame为基础,用来设计类似于Windows系统中窗口形式的界面,它是屏幕上window的对象,能够最大化、最小化、关闭。JFrame是Swing组件的顶层容器,该类继承了AWT的Frame类,支持Swing体系结构的高级GUI属性。
JFrame类的常用构造方法如下:
构造函数 | 描述 |
---|---|
JFrame() | 构造一个初始时不可见的新窗体 |
JFrame(String title) | 创建一个具有title指定标题的不可见新窗体 |
JFrame(GraphicsConfiguration gc) | 在指定GraphicsConfiguration的屏幕设备和空白标题中创建一个新窗体 |
JFrame(String title, GraphicsConfiguration gc) | 创建具有指定标题和指定GraphicsConfiguration屏幕设备的新窗体 |
JFrame类中的常用方法如下:
构造函数 | 描述 |
---|---|
getContentPane() | 返回此窗体的contentPane对象 |
getDefaultCloseOperation() | 返回用户在此窗体上单击“关闭”按钮时执行的操作 |
setContentPane(Container contentPane) | 设置contentPane属性 |
setDefaultCloseOperation(int operation) | 设置用户在此窗体上单击“关闭”按钮时默认执行的操作 |
setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated) | 设置JFrame窗口使用的Windows外观(如边框、关闭窗口的 小部件、标题等) |
setIconImage(Image image) | 设置要作为此窗口图标显示的图像 |
setJMenuBar(JMenuBar menubar) | 设置此窗体的菜单栏 |
setLayout(LayoutManager manager) | 设置LayoutManager属性 |
Example:
1.使用JFrame无参构造方法创建一个窗口:
package com.tianjh.swing;
import javax.swing.*;
/**
* @author tianjh
* @date 2021/3/5
* 使用JFrame创建一个空窗口
*/
public class JFrameDemo {
public static void main(String[] args) {
JFrame jFrame = new JFrame();
// 设置窗口的标题
jFrame.setTitle("这是由JFrame无参构造创建的窗口");
// 设置窗口位置及尺寸
jFrame.setBounds(500, 500, 500, 275);
// 设置单击“关闭”按钮时退出程序
jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// 设置窗口是否可见,如果设置false或不设置那么窗口将不可见
jFrame.setVisible(true);
}
}
运行结果如下:
2.使用JFrame带参构造方法创建一个窗口:
public class JFrameDemo {
public static void main(String[] args) {
// 创建一个带有指定标题的jFrame对象
JFrame jFrame = new JFrame("这是由JFrame带参构造创建的窗口");
// 设置窗口位置及尺寸
jFrame.setBounds(500, 500, 500, 275);
// 设置单击“关闭”按钮时退出程序
jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// 设置窗口是否可见,如果设置false或不设置那么窗口将不可见
jFrame.setVisible(true);
}
}
运行结果如下:
JPanel(面板容器)
JPanel是Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组合,是一种轻量级容器,可以加入到JFrame窗体中。
JPanel类的常用构造方法如下:
构造函数 | 描述 |
---|---|
JPanel() | 使用默认的布局管理器创建新面板,默认的布局管理器为 FlowLayout |
JPanel(LayoutManagerLayout layout) | 创建指定布局管理器的 JPanel 对象 |
JPanel 类中的常用方法如下:
方法名及返回值类型 | 描述 |
---|---|
Component add(Component comp) | 将指定的组件追加到此容器的尾部 |
void remove(Component comp) | 从容器中移除指定的组件 |
void setFont(Font f) | 设置容器的字体 |
void setLayout(LayoutManager mgr) | 设置容器的布局管理器 |
void setBackground(Color c) | 设置组件的背景色 |
Example:
3.使用JPanel创建一个背景为橘色的面板
package com.tianjh.swing;
import javax.swing.*;
import java.awt.*;
/**
* @author tianjh
* @date 2021/3/5
*/
public class JPanelDemo {
public static void main(String[] args) {
JFrame jFrame = new JFrame();
jFrame.setTitle("使用JPanel创建一个背景为橘色的面板");
// 设置窗口位置及尺寸
jFrame.setBounds(500,500,500,275);
// 设置单击“关闭”按钮时退出程序
jFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// 创建面板
JPanel jPanel = new JPanel();
// 设置面板背景为橘色
jPanel.setBackground(Color.orange);
// 将面板添加到jFrame
jFrame.add(jPanel);
// 设置窗口是否可见,如果设置false或不设置那么窗口将不可见
jFrame.setVisible(true);
}
}
运行结果如下: