初学Swing及其简单应用

在第三次实验中需要用到Swing组件。就临时学了一点,现在各个事情都告一段落,就写一下自己的理解。不说了直接上图
初学Swing及其简单应用_第1张图片下表是常用的Swing组件
初学Swing及其简单应用_第2张图片先介绍常用的窗体JFframe和JDialog
JFrame窗体是一个容器,它是Swing程序各个组件的载体,可以将JFrame看作是承载这些Swing组建的容器,在开发应用程序时可以通过JAVA.SWING.JFRAME类创建一个窗体,并在这个窗体添加组件。语法格式如下:

JFrame jf = new JFrame(title);
Container cntainer = jf.getContenPane();

Swing组件的窗体通常与组件和容器相关,所以在JFrame对象创建完成后,需要调用getContentPane(方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器。通常,这个容器用来包含和显示组件。如果需要将组件添加至容器,可以使用来自Container类的add0方法进行设置。例如:
container.add(new JButton(“按钮”);IIJButton按钮组件在容器中添加组件后,也可以使用Container类的remove0方法将这些组件从容器中删除。例如:container.remove(new JButton("按钮));

import java.awt.Color;
import java.awt.Container;
import javax.swing.*;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

public class example extends JFrame{
	public void creat(String title) {
		JFrame jf = new JFrame(title);     //实例化一个JFrame对象
		Container container = jf.getContentPane();  //获取容器
		JLabel jl = new JLabel("呜哈哈哈哈");   //创建一个位于窗体上的标签
		jl.setHorizontalAlignment(SwingConstants.CENTER);  //标签上的文字居中
		container.add(new JButton("按钮"));   //在容器桑添加一个按钮(这个按钮按了什么也不会发生)
		jf.setVisible(true);  //使按钮课件
		container.add(jl);     //在容器内加入标签
		container.setBackground(Color.white); //设置容器背景颜色
		jf.setVisible(true);    //让窗体可使
		jf.setSize(800,500);   //设置窗体大小
		jf.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
	}
	public static void main(String[] args) {
		new example().creat("ln栓的第一个JFrame窗体");  //调用create方法
	}
}
运行结果如下

初学Swing及其简单应用_第3张图片程序较少的话其实也不需要实例化一个窗体

import java.awt.Color;
import java.awt.Container;
import javax.swing.*;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

public class example extends JFrame{
	public void creat(String title) {
		//JFrame jf = new JFrame(title);     //实例化一个JFrame对象
		Container container = getContentPane();  //获取容器
		JLabel jl = new JLabel("呜哈哈哈哈");   //创建一个位于窗体上的标签
		jl.setHorizontalAlignment(SwingConstants.CENTER);  //标签上的文字居中
		container.add(new JButton("按钮"));   //在容器桑添加一个按钮(这个按钮按了什么也不会发生)
		setVisible(true);  //使按钮课件
		container.add(jl);     //在容器内加入标签
		container.setBackground(Color.white); //设置容器背景颜色
		setVisible(true);    //让窗体可使
		setSize(800,500);   //设置窗体大小
		setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
	}
	public static void main(String[] args) {
		new example().creat("ln栓的第一个JFrame窗体");  //调用create方法
	}
}

初学Swing及其简单应用_第4张图片不过这样的话就不能在窗体上方写字了

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

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

import javax.swing.*;

class MyDialog extends JDialog{
	public MyDialog(MyFrame frame) {
		super(frame,"第一个JDialog窗体",true);   //实例化一个JDialog类对象,指定对话框的父窗体,窗体标题和类型
		Container container = getContentPane();  //创建一个容器
		container.add(new JLabel("这是一个对话框"));  //添加标签
		setBounds(50,100,100,100);  //设置对话框大小和出现的位置
	}
}

public class MyFrame extends JFrame {
	public static void main(String[] args) {
		new MyFrame();    //实例化对象
	}
	public MyFrame() {
		Container container = getContentPane(); //创建容器
		container.setLayout(null);    
		JLabel jl = new JLabel("这是一个JFrame窗体");   //在窗体中设置标签
		jl.setBounds(50, 50, 120, 50);     //设置标签的大小和位置
		jl.setHorizontalAlignment(SwingConstants.CENTER);//将标签文字居中
		container.add(jl);   //添加标签
		JButton bl = new JButton("弹出对话框");  //定义一个按钮
		bl.setBounds(20,20,120,20);     //设置按钮的大小和位置
		bl.addActionListener(new ActionListener() {    //为按钮添加鼠标点击事件
			public void actionPerformed(ActionEvent e) {  
				new MyDialog(MyFrame.this).setVisible(true);  //使MyDialog窗体可见
			}
		});
		container.add(bl);  //在容器中添加按钮
		setSize(400,400);   //设置窗体大小
		setVisible(true);    //窗体可见
	}
}

结果如下
初学Swing及其简单应用_第5张图片
在本实例中,为了使对话框在父窗体弹出,定义了一个JFrame窗体,首先在该窗体中定义一个按钮,一个鼠标单击监听事件newMyJDialog0.setVisible(true)语句使对话框窗体可见,这样就实现了用户单击该按钮后弹出对话框的功能。在MyJDialog类中,由于它继承了JDialog类,所以可以在构。上图弹出JDialog窗体造方法中使用super关键字调用JDialog构造方法。在这里使用publicJDialog(Framef,String title,boolean model)这种形式的构造方法,相应地设置了自定义的JFrame窗体以及对话框的标题和窗体类型。在本实例代码中可以看到,JDialog 窗体与JFrame 窗体形式基本相同,甚至在设置窗体的特性时调田的方法夕称都基本相同,如设置窗体大小、窗体关闭状态等。

你可能感兴趣的:(java)