【进击的Java小白】--JFrame类和JDialog类

本文介绍了Swing组件中的顶层容器JFrame和JDialog的使用。JFrame作为主窗口,支持设置标题、大小、关闭操作及图标。JDialog则用于创建对话框,可设置为模式或非模式。通过示例展示了如何利用JDialog创建带有问候语的对话框。
摘要由CSDN通过智能技术生成

Swing组件-顶层容器

通常将javax.swing包里的Swing组件归为三个层次:

  • 顶层容器
  • 中间层容器
  • 原子组件

每个使用Swing组件的Java程序必须至少有一个顶层容器,别的组件都必须放在这个顶层容器上才能显现出来,以下两个类便是顶层容器类。

1.JFrame类

JFrame实现单个主窗口;

独立存在,有边框、标题和菜单;

从原来的AWT组建的Frame类继承而来。

常用方法(5~8从Frame类中继承而来;9、10从Window类继承而来的常用方法):

  1. JFrame(String title)
    

构造有标题的窗体,括号内为空时是无标题的窗体。

  1. void setDefaultCloseOperation(int operation)
    

参数是整形的静态常量字段(选以下其一):

  • HIDE_ON_CLOSE :隐藏窗口的默认窗口关闭操作
  • DO_NOTHING_ON_CLOSE :无操作的默认窗口关闭操作
  • DISPOSE_ON_CLOSE :移除窗口的默认窗口关闭操作
  • EXIT_ON_CLOSE :退出|结束整个应用程序默认窗口关闭操作
  1. void setIconImage(Image image)
    

显示在最小化图标中的图像。不是所有平台都支持最小化窗口的概念。 参数: image 是要显示的图标图像的路径。如果此参数为 null,则将图标图像设置为默认图像,默认图像可能随平台不同而不同。

  1. void setJMenuBar(JMenuBar menubar)
    

JMenuBar负责创建菜单条,即JMenuBar的一个实例就是一个菜单条。

JMenuBar bar = new JMenuBar(); //创建菜单条

将菜单条添加到窗口中的方法就是setJMenuBar

  1. void setTitle(String title)
    

设置标题,title是标题名

  1. void setResizable(boolean resizable)
    

参数为boolean类型,resizeable值为true时,表示在生成的窗体可以自由改变大小;
resizeable值为false时,表示生成的窗体大小是由程序员决定的,用户不可以自由改变该窗体的大小。

  1. boolean isResizable()
    

返回:

如果可以调整此内部窗体的大小,则返回 true;否则返回 false

  1. void setExtendedState(int state)
    

参数是Frame类定义的整形静态常量字段:

  • NORMAL:正常状态
  • ICONIFIED:将窗口图标化(最小化)
  • MAXIMIZED_HORIZ: 水平方向最大化
  • MAXIMIZED_VERT: 垂直方向最大化
  • MAXIMIZED_BOTH:水平和垂直方向均最大化
  1. void dispose()
    

撤销、关闭窗体

  1. void pack()
    

重新调整窗口大小

2.JDialog类

实现一个二级窗口(对话框)

一般不单独使用,常依附别的容器(例如JFrame)。

从原来的AWT组建的Dialog类继承而来。

JDialog对话框分为模式(modal)非模式两种 :

▫模式对话框(model为 true)创建后,程序的其他窗口便不能进行操作,必须将该窗口关闭后,其他窗口才能进行操作。

▫非模式对话框(model为 false)则无需这样,对话框与所属窗口可以互相切换,彼此在操作上没有顺序性。

常用构造方法:

JDialog dialog=new JDialogJFrame owner,String title);

常用方法:

  1. void setModalityType(JDialog.ModalityType.type)
    

设置对话框的模式类型 type:

  • MODELESS: 无模式
  • APPLICATION_MODAL: 应用程序模式(默认)
  1. JDialog.ModalityType getModalityType()
    

返回模式类型

3.【实战举例】

使用JDialog对话框显示问候语,如下图:

在这里插入图片描述

代码如下:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class MyFrame01 extends JFrame{
	private static final long serialVersionUID=1L;
	private JLabel lab=new JLabel("请输入你的名字:");
	private JTextField tf=new JTextField(10);
	private JButton but=new JButton("确定");
	private JPanel pan=new JPanel();//中间容器JPanel
	private MyFrame01 thisFrame;//代表本窗口的字段
	public MyFrame01() {//构造方法
		thisFrame=this;//本窗体字段赋值
		this.setTitle("自定义的JFrame窗体");
		this.setBounds(600, 500, 300, 250);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		initialize();//调用初始化方法
		this.setVisible(true);
	}
	public void initialize() {
		pan.add(lab);//面板添加标签
		pan.add(tf);
		pan.add(but);
		this.add(pan);//窗体添加面板
		but.addActionListener(new ActionListener() {//按钮动作事件处理
			public void actionPerformed(ActionEvent e) {
				//构造并显示JDialog对话框
				JDialog dialog=new JDialog(thisFrame,"JDialog对话框");
				dialog.setModalityType(JDialog.ModalityType.APPLICATION_MODAL);
				dialog.setBounds(650, 600, 200, 150);
				dialog.add(new JLabel(tf.getText()+",您好!"));
				dialog.setVisible(true);
			}
		});
	}

}
public class EX01 {
	public static void main(String[] args) {
		new MyFrame01();//调用MyFrame01()
	}

}

运行EX01.java程序即可显示上图。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘子潜水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值