Swing常用窗体

窗体作为Swing应用程序中组件的承载体,处于非常重要的位置。Swing中常用的窗体包括JFrame和JDialog。

 

一、JFrame窗体

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

JFrame jf = new JFrame(title);
Container container = jf.getContentPane();
//jf:JFrame类的对象
//container:Container类的对象,可以使用JFrame对象调用getContentPane()方法获取

Swing组件的窗体与组件和容器相关,所以在JFrame对象创建完成后,需要调用getContentPane()方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器。可以使用Container类的add()方法来添加组件到容器,remove()方法来移除容器中的组件,相关示例如下:

import java.awt.*;
import javax.swing.*;

public class Example 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(400,300);							//设置窗体大小
		//设置窗体关闭方式
		jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String agrs[]) {
		new Example().CreateJFrame("创建一个JFrame窗体");
	}
}

运行结果:

创建窗体后,需要给予窗体一个关闭方式,可以调用setDefaultCloseOperation()方法关闭窗体,Java提供了多种关闭方式,常用的有以下四种:

1、DO_NOTHING_ON_CLOSE:什么都不做就将窗体关闭

2、DISPOSE_ON_CLOSE:任何注册监听程序对象后自动隐藏并释放窗体

3、HIDE_ON_CLOSE:隐藏窗口的默认窗口关闭

扫描二维码关注公众号,回复: 9573615 查看本文章

4、EXIT_ON_CLOSE:退出应用默认窗口关闭

 

二、JDialog窗体

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

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

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

1、public JDialog():创建一个没有标题和父窗口的对话框

2、public JDialog(Frame f):创建一个指定父窗口的对话框,但该窗体没有标题

3、public JDialog(Frame f,boolean model):创建一个指定类型的对话框,并指定父窗口,但该窗体没有指定标题

4、public JDialog(Frame f,String title):创建一个指定标题和父窗口的对话框

5、public JDialog(Frame f,String title,boolean model):创建一个指定标题、窗体和模式的对话框

示例如下:

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

import javax.swing.*;



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 static void main(String args[]) {
		MyFrame jf = new MyFrame();						
		jf.setVisible(true);							//设置窗体可视
		jf.setSize(400,300);							//设置窗体大小
		//设置窗体关闭方式
		jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public MyFrame() {
		Container container = getContentPane();			//创建一个容器
		container.setLayout(null);	
		JLabel jl = new JLabel("这是一个JFrame窗体");	//在窗体种设置标签
		container.add(jl);
		JButton bl = new JButton("弹出对话框");			//定义一个按钮
		bl.setBounds(10,10,100,21);
		bl.addActionListener(new ActionListener() {		//给按钮添加鼠标单击事件
			
			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO 自动生成的方法存根
				new MyJDialog(MyFrame.this).setVisible(true);
			}
		});
		container.add(bl);								//将按钮添加到容器中
	}
}

运行结果如下图所示:

发布了61 篇原创文章 · 获赞 1 · 访问量 1335

猜你喜欢

转载自blog.csdn.net/qq_29440983/article/details/103677389
今日推荐