java图形界面(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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值