Java基础——GUI

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

GUI
GUI和CLI

GUI: Graphical Us er In terface(图形用户接口)。
用图形的方式,来显示计算机操作的界面,这样更方便更直观。
CLI: Co mmand l ine User I nterface (命令行用户接口)
就是常见的Dos命令行操作。
需要记忆一些常用的命令,操作不直观。

awt和swing
java.awtAbstract WindowToolKit(抽象窗口工具包)
需要调用本地系统方法实现功能。属重量级控件
javax.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件


继承关系图解

Java基础——GUI_第1张图片

Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。

Container常用子类:Window   Panel(面板,不能单独存在)

Window常用子类:Frame  Dialog


简单的窗体创建过程
<span style="font-size:12px;">		Frame  f = new Frame(“my window”);//生成对象
		f.setLayout(new FlowLayout());//设置布局管理器
		f.setSize(300,400);//设置窗体大小
		f.setLocation(300,200);//设置窗体出现在屏幕的位置
		f.setVisible(true);//让窗体显示</span><strong style="font-size:18px;">
</strong>

示例代码
<span style="font-size:12px;">import java.awt.Frame;


public class FrameDemo {
	public static void main(String[] args) {
		//创建窗体对象
		Frame f = new Frame();//构造也可以
		
		//设置标题
		f.setTitle("helloworld");
		
		//设置窗体大小
		f.setSize(400, 300);

		//设置窗体坐标
		f.setLocation(400, 200);
		
		f.setVisible(true);
		System.out.println("hellow world");
	}
}</span>

事件监听机制

1.事件源(组件):awtswing包中的那些图形界面组件

2.事件(Event):每一个事件源都有自己特有的对应事件和共性事件

3.监听器(Listener):将可触发某一事件的动作(不只一个动作),都封装到侦听器中。

4.事件处理:引发事件后的处理方式





示例代码
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class butten {
	public static void main(String[] args) {
		Frame f = new Frame("按钮添加");
		
		f.setBounds(400, 400, 400, 300);
		
		f.addWindowListener( new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		
		// 设置布局为流试布局
		
		f.setLayout(new FlowLayout());
		
		Button bu = new Button("按钮");//事件源
		
		//设置按钮事件
		//注册事件
		bu.addActionListener(new ActionListener() {//监听器
			
			@Override
			public void actionPerformed(ActionEvent e) {//事件
				System.out.println("try again");
				
			}
		});
	
		
		
		bu.setSize(50, 50);
		f.add(bu);
		
		
		f.setVisible(true);
	}
}

菜单
MenuBar(菜单条),Menu(菜单),MenuItem(菜单项)
先创建菜单条,再创建菜单,每一个菜单中建立菜单项
也可以菜单添加到菜单中,作为子菜单
通过setMenuBar()方法,将菜单添加到Frame中



实例代码
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class menuDemo {
	public static void main(String [] args) {
	Frame f = new Frame("菜单");
		
		f.setBounds(400, 200, 400, 300);
		
		f.setLayout(new FlowLayout());
		
		//创建菜单
		MenuBar mb = new MenuBar();
		//创建菜单
		Menu m = new Menu("文件");
		Menu m1 = new Menu("other");
		Menu m22 = new Menu("other");
		//创建菜单项
		
		MenuItem mi = new MenuItem("退出系统");
		MenuItem m11 = new MenuItem("1");
		MenuItem m2 = new MenuItem("2");
		MenuItem m3 = new MenuItem("3");
		MenuItem m4 = new MenuItem("4");
		
		mi.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				System.exit(0);
				
			}
		});
		
		m1.add(m11);
		m1.add(m2);
		m1.add(m3);
		m1.add(m22);
		m22.add(m4);
		
		mb.add(m1);
		mb.add(m);
		f.setMenuBar(mb);
		
		
		
		f.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		
		
		f.setVisible(true);
		

	}
}




你可能感兴趣的:(java)