文章目录
该文将较为详细地介绍了Swing组件中的JFrame窗体。JFrame窗体是大部分Swing组件的一个载体,这些组件都要在这个窗体上面。而JDialog是一个对话框,可以理解为JFrame窗体向下细分的一个对话框窗体。
JFrame窗体是Swing应用程序中各个组件的承载体,处于十分重要的位置。在开发程序界面时,通过继承 java.swing.JFrame类,创建一个窗体对象,在这个窗体中添加组件,同时为组件设置事件(通常做法:创建一个方法进行此操作,再于main静态方法中实例化调用)。
语法:
JFrame jf = new JFrame(title);
//jf:JFrame类的对象
Container container = jf.getContentPane();
//container:Container类的对象,使用JFrame对象调用getContentPane()方法获取
getContentPane() 方法:Swing组件的窗体于组件和容器相关,所以在创建完JFrame对象后,需要调用getContentPane() 方法将窗体转换为容器,然后才能在该窗体(容器)中添加组件或设置布局管理器。
(1)添加组件至容器的语法:add()方法
容器对象.add(new 组件("组件名称"));
实例:
container.add(new JButton("按钮"));
//向 container 容器添加了一个“按钮”组件
添加后,界面效果展示:
(2)将组件从容器中删除的语法:remove()方法
容器对象.remove(new 组件(”按钮“));
实例:
container.remove(new JButton("按钮"));
//从container容器中删去一个“按钮”的组件
第一种形式的构造方法:创建一个不可见、没有标题的新窗体。 (要使用 setVisible(布尔值)方法使得窗体可见,一但可见,并且在main静态方法中实例化该方法后,点击运行就会生成这个窗体)
public JFrame(){
//some codes
}
第二种形式的构造方法:创建一个不可见、有标题的新窗体。(本实例中采取此方法,并且都要用setVisible()方法,在main静态方法中实例化)
public JFrame(String title){
//title为窗体的标题,可自定义
//some codes
}
实例:
import javax.swing.*;
import java.awt.*;
//导入swing包,awt包
public class Demo extends JFrame{
//定义一个继承了JFrame窗体类的类,使其可以随意调用JFrame类中的方法
public void MyJFrame(String title){
//创建一个方法,用于构建窗体
JFrame jf = new JFrame(title);
//实例化一个JFrame窗体类对象,括号中为窗体的标题
jf.setBounds(200, 200, 1000, 100);
Container container = jf.getContentPane();
//使用getContentPane()方法,获取该JFrame类对象的容器
JLabel jLabel = new JLabel("创建了一个父窗体");
//创建了一个JLabel标签对象,并且添加了内容
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
//使标签上的文字居中
container.add(jLabel);
//将标签添加到容器中
container.setBackground(Color.WHITE);
//设置容器的背景颜色
jf.setVisible(true);
//使窗体可见
jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
//设置窗体的关闭方式
}
public static void main(String[] args) {
//在主方法中实例化 Demo类中的 MyJFrame方法
new Demo().MyJFrame("创建了窗体");
}
}
输出结果:
在该实例中,Demo类继承了JFrame类,在该类创建的MyJFrame方法实例化JFrame对象,这是创建JFrame窗体的常用方法。
(1)setVisible()方法:使运行后,窗体可视化,在桌面生成窗体。(默认为false)
jf.setVisible(true);
//括号中的布尔值为是否显示窗体
(2)setBounds()方法:设置窗体的生成位置,窗体大小。
jf.setBounds(200, 300, 1000, 100);
/* 设置窗体对象窗体左上角的生成位置为:
* 水平方法(x):200像素
* 竖直方向(y):300像素
* 设置窗体大小为:
* 宽(x):1000像素
* 高(y):100像素
*/
(3)setHorizontalAlignment()方法:设置文本的生成位置
jLabel.setHorizontalAlignment(SwingConstants.CENTER);
//SwingConstants.CENTER swing组件内容居中
//由于是JLabel对象调用,所以标签的内容居中
(4)setBackground()方法:设置背景颜色
container.setBackground(Color.WHITE);
//设置了容器的背景颜色为白色,Color对象调用颜色为 白色 WHITE
(5)setDefaultCloseOperation()方法:设置关闭方式
jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
//设置窗体对象的关闭方式为 关闭,并停止运行程序
常用的四种关闭方式 | 解释 |
DO_NOTHING_ON_CLOSE | 若无任何操作,则关闭窗体,不会终止程序 |
DISPOSE_ON_CLOSE | 任何注册监听程序对象后,自动关闭并释放窗体资源,不会终止程序 |
HIDE_ON_CLOSE | 关闭窗体,但不终止程序运行 |
EXIT_ON_CLOSE | 关闭窗体,并且终止程序运行 |
以上就是对java语言中Swing程序设计中JFrame窗体的使用的介绍。技术内容可能有所过时,适合在校新生学习,欢迎补充指正,博主会及时进行反馈。