java图形界面(GUI)

本文详细介绍了Java Swing GUI组件的使用,包括顶层容器、组件分类、创建菜单及Swing API的强大功能。通过实例展示了如何创建简单的GUI应用。

Graphical user interface (GUI)图形用户界面

AWT  Abstract Window  Toolkit   抽象窗口工具集,第一代的JAVA GUI组件,是重量级的

Swing 不依赖于底层细节,轻量级的组件,是第二代的JAVA GUI组件,下面来详细介绍Swing

1. Swing:
•是第二代GUI开发工具
•它建立在AWT之上,但用新版本的组件替代了旧版本的组件。
•它提供了许多新的组件和相关的API

2. The Swing API 发布在:
–JDK1.2
–JFC1.1 (for use with JDK1.1)
3.The Swing API 功能是强大的,灵活的和广泛的。例如JFC 1.1 有15 public packages。
我们经常用的有两个包:
–javax.swing
–javax.swing.event

一、概览

SwingApplication 创建了四个常用的Swing components:
•a frame, or main window (JFrame)
•a panel (JPanel)
•a button (JButton)
•a label (JLabel)
二、 Swing Components 分类

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



三、顶层容器

顶层容器
java 提供了三个顶层容器:JFrame, JDialog, 和JApplet。

顶层容器
特点:
•显示在屏幕上的每个组件都必须在一个包含继承中。每一个包含继承都有一个顶层容器作为它的根。
•每一个顶层容器都有一个content pane,它包含了顶层容器中的所有组件
•菜单在顶层容器中,但在content pane 之外。
四、JFrame

JFrame
是一个带有标题和可变大小边框的窗口。
任何一个图形界面应用程序都必须至少有一个JFrame.



下面是代码示例:

import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class FrameDemo
{

	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		JFrame frame=new JFrame("JFrame Demo");
		JLabel label=new JLabel("label");
		frame.addWindowListener(new MyHandler());
		
		frame.getContentPane().add(label,BorderLayout.CENTER);
		frame.pack();
		frame.setVisible(true);
		

	}

}
class MyHandler extends WindowAdapter
{
	@Override
	public void windowClosing(WindowEvent e)
	{
		System.exit(0);
	}
	
}


五、JDialog

JDialog是一个对话框,当你要弹出对话框的时候使用这个组件,由于这个组件比较简单,所以不举例说明。
六、JPanel


JPanel
•为其它组件提供一个容器。便于组织和显示组件。
•还可以包含子JPanel

import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class FrameWithJPanel extends JFrame
{
	public FrameWithJPanel(String title)

	{
		super(title);
	}
	public static void main(String[] args)
	{
		FrameWithJPanel frame=new FrameWithJPanel("second gui");
		JPanel panel=new JPanel();
		frame.setSize(300,200);
		frame.setBackground(Color.blue);
		frame.setLayout(null);
		
		panel.setSize(100,100);
		panel.setBackground(Color.red);
		
		frame.add(panel);
		frame.setVisible(true);
		
		
	}

}



七、创建菜单

步骤:
1.创建一个MenuBar 对象, 将其加入一个菜单容器,例如:Frame .
2.创建一个或多个Menu 对象,将其加入menu bar 对象.
3.创建一个或多个MenuItem objects,对象,将其加入相应的menu object.

import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class MenuTest
{

	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		JFrame frame=new JFrame("MenuTest");
		JMenuBar mb=new JMenuBar();
		
		JMenu m1=new JMenu("File");
		JMenu m2=new JMenu("save");
		JMenu m3=new JMenu("load");
		JMenu m4=new JMenu("quit");
		
		JMenuItem j1=new JMenuItem("hello");
		JMenuItem j2=new JMenuItem("hello");
		JMenuItem j3=new JMenuItem("hello");
		JMenuItem j4=new JMenuItem("hello");
		
		frame.setJMenuBar(mb);
		
		
		
		mb.add(m1);
		mb.add(m2);
		mb.add(m3);
		mb.add(m4);
		
		
		
		m1.add(j1);
		m1.add(j2);
		m1.add(j3);
		m1.add(j4);
		
		
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		frame.setSize(new Dimension(200,300));
		frame.setVisible(true);

	}

}


八、JComponent Class

JComponent Class
JComponent Class API:
它从Componentand Container继承了许多方法,同时也提供了一些新的方法。它为它的继承者提供了如下常用功能:
•Customizing Component Appearance
•Setting Component State
•Handling Events
•Painting Components
•Dealing with the Containment Hierarchy
•Laying Out Components
•Getting Size and Position Information
•Specifying Absolute Size and Position

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值