java常用窗体(JFrame、JDialog)

您所在的位置:网站首页 保护结构和窗口什么意思 java常用窗体(JFrame、JDialog)

java常用窗体(JFrame、JDialog)

2024-07-12 03:23| 来源: 网络整理| 查看: 265

JFrame窗体

JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame看作是承载这些Swing组件的容器,在开发应该程序时,可以通过继承javax.swing.JFrame类创建一个窗体,在这个窗体中添加组件,同时为组件设置事件,由于该窗体继承了JFrame类,所以它拥有最大化、最小化、关闭按钮等按钮,下面将详细介绍JFrame窗体在java应用程序中的使用方法。

JFrame类的常用构造方法有以下两种形式:

public JFrame():创建一个初始不可见、没有标题的新窗体;public JFrame(String title):创建一个不可见但具有标题的窗体;

例如,创建一个JFrame窗体对象,代码如下:

JFrame jf = new JFrame("窗体"); Container container = jf.getContentPane();

上面代码在创建完JFrame对象后,使用getContentPane()方法创建了一个Container对象,这是因为Swing组件的窗体通常与组件和容器相关,所以在JFrame对象创建完成后,需要调用getContentPane()方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器,通常,这个容器用包含和显示组件,如果需要将组件添加至容器,可以使用来自Container类的add()方法进行操作,例如以下代码:

container.add(new JButton("按钮"));

在容器中添加组件后,也可以使用Container类的remove()方法将这些组件从容器中删除,例如:

container.remove(new JButton("按钮"));

创建完JFrame窗体之后,需要对窗体进行设置,比如设置窗体的位置、大小、是否可见等。这些操作通过JFrame类提供的相应方法来实现,下表中对JFrame类的常用方法进行讲解:

方法功能描述setBounds(int x,int y,int width,int leight)设置组件左上角顶点的坐标为(x,y),宽度为width,高度为heightsetLocation(int x,int y)设置组件的左上角坐标为(x,y)setSize(int width,int leight)设置组件的宽度为width,高度为height

setVisibale(boolean b)

设置组件是否可见,参数为true表示可见,参数为false表示不可见setDefaultCloseOperation(int operation)设置关闭JFrame窗体的方式,默认值为DISPOSE_ON_CLOSE

                              java为实现关闭JFrame窗体提供了多种方式,常用的有4种,如下:

DO_NOTHING_ON_CLOSE表示单击关闭按钮时无任何操作DISPOSE_ON_CLOSE表示单击关闭按钮时隐藏并释放窗口HIDE_ON_CLOSE表示单击关闭按钮时将当前窗口隐藏EXIT_ON_CLOSE表示单击关闭按钮时退出当前窗口并关闭程序

实例:创建标签组件并添加到窗体中,代码如下:

import java.awt.*; //导入AWT包 import javax.swing.*; //导入Swing包 public class JFrameTest extends JFrame { // 定义一个类继承JFrame类 public void CreateJFrame(String title) { // 定义一个CreateJFrame()方法 JFrame jf = new JFrame(title); // 创建一个JFrame对象 Container container = jf.getContentPane(); // 获取一个容器 JLabel jl = new JLabel("这是一个JFrame窗体"); // 创建一个JLabel标签 // 使标签上的文字居中 jl.setHorizontalAlignment(SwingConstants.CENTER); container.add(jl); // 将标签添加到容器中 container.setBackground(Color.white); // 设置容器的背景颜色 jf.setVisible(true); // 使窗体可见 jf.setSize(200, 150); // 设置窗体大小 // 设置窗体关闭方式 jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String args[]) { // 在主方法中调用CreateJFrame()方法 new JFrameTest().CreateJFrame("创建一个JFrame窗体"); } }

返回结果如下图:  

如何让窗体不能改变大小呢?代码如下:

jf.setResizable(false); JDialog对话框窗体

JDialog窗体是Swing组件中的对话框,他继承了AWT组件中java.awt.Dialog类

JDialog窗体的功能是从一个窗体中弹出另一个窗体,就像是在使用IE游览器是弹出的确定对话框一样,JDialog窗体实质上另一种类型的窗体,它与JFrame窗体类似,在使用时也需要调用getContentPane()方法将窗体转换为容器,然后在容器中设置窗体的特性。

在应用程序中创建JDialog窗体需要实例化JDialog类,通常使用以下几个JDialog类的构造方法:

public JDialog():创建一个没有标题和父窗体的对话框;public JDialog(Frame f):创建一个指定父窗体的对话框,但该窗体没有标题;public JDialog(Frame f,boolean model):创建一个指定类型的对话框,并指定父窗体,但该窗体没有指定标题,如果model为true,则弹出对话框之后,用户无法操作父窗体public JDialog(Frame f,String title):创建一个指定标题和父窗体的对话框;public JDialog(Frame f,String title,Boolean model):创建一个指定标题、窗体和模式的对话框;

下面来看一个实例,该实例主要实现单击JFrame窗体中的按钮后,弹出一个对话框窗体,代码如下:

import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.WindowConstants; class MyJDialog extends JDialog { // 创建自定义对话框类,并继承JDialog类 public MyJDialog(MyFrame frame) { // 实例化一个JDialog类对象,指定对话框的父窗体、窗体标题和类型 super(frame, "第一个JDialog窗体", true); Container container = getContentPane(); // 创建一个容器 container.add(new JLabel("这是一个对话框")); // 在容器中添加标签 setBounds(120, 120, 100, 100); // 设置对话框窗体在桌面显示的坐标和大小 } } public class MyFrame extends JFrame { // 创建父窗体类 public MyFrame() { Container container = getContentPane(); // 获得窗体容器 container.setLayout(null); // 容器使用null布局 JButton bl = new JButton("弹出对话框"); // 定义一个按钮 bl.setBounds(10, 10, 100, 21); // 定义按钮在容器中的坐标和大小 bl.addActionListener(new ActionListener() { // 为按钮添加点击事件 public void actionPerformed(ActionEvent e) { // 创建MyJDialo对话框 MyJDialog dialog = new MyJDialog(MyFrame.this); dialog.setVisible(true); // 使MyJDialog窗体可见 } }); container.add(bl); // 将按钮添加到容器中 container.setBackground(Color.WHITE); // 容器背景色为白色 setSize(200, 200); // 窗口大小 // 窗口关闭后结束程序 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setVisible(true); // 使窗口可见 } public static void main(String args[]) { new MyFrame(); // 实例化MyFrame类对象 } }

返回结果:  

在上面代码中,MyJDialog类继承了JDialog类,所以可以在构造方法中使用super关键字调用JDialog类的构造方法,在这里使用了public JDialog(Frame f,String title,Boolean model)这种形式的构造放,相应地设置了自定义对话框的标题和窗体类型



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3