第四章 认识JFrame和JDialog
JFrame是java图形用户界面(GUI)编程中的一个重要类,它代表一个窗口或框架。JDialog是Java中的一种对话框组件,通常用于和用户进行交互。
4.1 认识JFrame和JDialog
JFrame它拥有的特效以下几种特效:
1.窗口特效:是一个独立的窗口,通常创建桌面应用程序的主窗口,具有标题栏、边框和控制按钮。
2.容器功能:可以包含各种GUI组件,如按钮、标签、文本框等,可以添加到JFrame的内容面板中来显示在窗口中。
3.窗口操作:可以设置大小调整,可见性控制,关闭操作。
4.菜单栏和工具栏支持:支持添加菜单栏和工具栏。
JDialog是一种特殊类型的窗口,通常用于与用户进行交互,例如显示信息、获取用户输入或者确认操作等。它可以是静态的(阻止用户与其他窗口交互,直到该对话框被关闭)或非模态的(用户可以在对话框和其他窗口之间切换)。
4.2 如何使用JFrame
JFrame是要穿件Swing应用程序的一个主界面窗口,可以被显示到用户界面上。使用JFrame的常用操作分别是:
- 创建JFrame对象
- 设置窗口属性
- 添加组件及方法
- 设置窗体图标
- 显示窗体
通过以上步骤操作后,并可以生成一个Java Swing的窗体界面,如下图所示:
表 13
4.2.1 创建JFrame对象
创建一个JFrame对象,设置窗体的标题,代码如下:
JFrame jFrame = new JFrame("测试窗体");
jFrame.setTitle("xxx");
4.2.2 设置窗体属性
设置窗体大小,设置窗体位置,设置窗体是否可以调整,设置常见的关闭操作。
jFrame.setSize(400,600); //设置窗口大小
jFrame.setLocation(200,200); //设置窗体位置
jFrame.setResizable(true); //不可调整大小,true为可调整大小
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //常见的关闭操作有EXIT_ON_CLOSE(退出程序)、DISPOSE_ON_CLOSE(释放资源但不退出程序)等。
4.2.3 添加组件的方法
IFrame有两种方式添加组件,第一种是获取IFrame内容面板属性,然后添加组件,第二种方式是直接添加组件,添加按钮组件为代码如下:
Container contentPane = jFrame.getContentPane();
JButton button = new JButton("文本按钮");
contentPane.add(button);
JButton button = new JButton("文本按钮");
jFrame.add(button);
4.2.4 设置窗体图标
给窗体设置一个图标,这样创建好的窗体就有这个logo标识了:
ImageIcon icon = new ImageIcon("F://A.jpg");
jFrame.setIconImage(icon.getImage());
4.2.5 显示窗口
jFrame.setVisible(true); //设置是否可见
4.3 如何使用JDialog
JDialog是一个对话框组件,它的特点如下:
1. 弹出式交互
可以从一个窗体弹出另一个窗体,用于在应用程序中显示临时的信息提示、获取用户输入或确认等交互操作,类似浏览器中弹出的确定对话框。
2. 组件容纳
可以容纳各种Swing组件,如按钮、文本框、标签等,从而实现丰富的用户交互界面。
3. 模态与非模态
可以设置为模态或非模态。模态对话框会阻塞父窗口及其他窗口的输入,直到改对话框被关闭;非模态对话框则允许用户在补关闭对话框的情况下与其他窗口进行交互。
使用JDialog的常用操作分别是:
- 创建JDialog对象
- 设置模态化和非模态化
- 设置大小以及位置
- 添加组件的方法
- 显示对话框
4.3.1 创建JDialog对象
创建一个Dialog对象,设置标题,可以在创建对象的时候创建好标题,也可以设置标题。
Dialog jDialog = new JDialog(jFrame,"aa");
jDialog.setTitle("对话框");
4.3.2 设置模态化和非模态化
设置模态化还是非模态化,其值可以是true和false,其中true表示模态化展示。
jDialog.setModal(false);
4.3.3 设置大小及位置和关闭操作
相关属性设置如下:
jDialog.setSize(300,200);
jDialog.setLocationRelativeTo(null);
jDialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
4.3.4 添加组件的方法
有两种方式添加组件,分别是直接添加组件和使用panel面板的方式添加组件。
4.3.4.1 直接添加组件
使用Jdialog的add方法直接添加组件。
jDialog.setLayout(new FlowLayout());JLabel label = new JLabel("This is a dialog.");
jDialog.add(label);
4.3.4.2 通过panel面板添加组件
使用panel面板方式添加组件。
Panel panel = new JPanel();JLabel label = new JLabel("这是一个JDialog示例");
panel.add(label);
jDialog.setContentPane(panel);
4.3.5 显示对话框
通过setVisible方法可以显示JDialog对话框。
jDialog.setVisible(true);
4.4 关于pack()方法
在Java的Swing图形界面开发中,pack()方法是JFrame、JDialog等顶级容器类的一个重要方法。
主要作用
1.自动调整窗口大小:自动将窗口大小调整为刚好能容纳其所有子组件的最小尺寸,确保所有组件都能完整显示,避免出现组件被截断或窗口过大导致界面不美观的情况。
2.优化布局显示:根据布局管理器的规则,合理排列组件,并调整组件之间的间距和边框,使界面布局更加紧凑和合理。
调用时机:应在所有组件都已添加到容器中之后,且在容器变为可见之前调用pack()方法,这样可以确保窗口大小正确计算。