黑马程序员---GUI-1

------- android培训java培训、期待与您交流! ----------

GUI

 

 * 创建图形化界面

 * 1,创建frame窗体

 * 2,窗体基本设置

 * 位置,大小,布局

 * 3,定义组件

 * 4,添加组件

 * 5,显示窗体

 

 

 * 事件监听机制的特点

 * 1,事件源:图形界面组件

 * 2,事件:组件都有对应事件和共性事件

 * 3,监听器:将可以触发某一个事件的动作封装到了监听器中

 * 4,处理方式:对事件进行处理

import java.awt.*;
import java.awt.event.*;

public class AwtDemo 
{
	public static void main(String[] args)
	{
		Frame f=new Frame("my Awt");
		//基本样式设定
		f.setLocation(300, 400);//设置窗口位置
		f.setLayout(new FlowLayout());//设置布局
		Button b=new Button("按钮");
		f.add(b);
		f.setSize(500, 100);//设置窗口大小
		//安装监听器
		f.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});//用匿名内部类
		f.setVisible(true);
	}
}

/*自定义类继承WindowAdapter重载方法
 * class myClose extends WindowAdapter

{
	public void windowClosing(WindowEvent e)
	{
		System.exit(0);
	}
}
*/


 

Frame中添加组件

import java.awt.*;
import java.awt.event.*;

public class FrameDemo 
{
	//定义该图形中所需的组件的引用
	private Frame f;
	private Button bu;
	
	FrameDemo()
	{
		init();
	}
	public void init()
	{
		f=new Frame("my frame");
		//对frame进行基本设置
		f.setBounds(300,300, 500, 300);//集setLocation 和setSize于一身
		f.setLayout(new FlowLayout());
		
		bu=new Button("按钮");
		//将组件添加到frame中
		f.add(bu);
		//加载下窗体上的事件
		myEvent();
		
		f.setVisible(true);
	}
	
	private void myEvent()
	{
		f.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		
		//让按钮具备将程序退出的功能
		/*
		 * 按钮是事件源
		 * 添加组件对应的监听器*/
		bu.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				System.exit(0);
			}
		});
	}
	
	public static void main(String[] args)
	{
		new FrameDemo();
	}
}

 

键盘与鼠标的监听

import java.awt.*;
import java.awt.event.*;
public class MAK 
{
	private Frame f;
	private Button b;
	private TextField tf;
	
	MAK()
	{
		init();
	}
	public void init()
	{
		f=new Frame("MAK");
		b=new Button("按钮");
		
		f.setBounds(300, 400, 500, 400);
		f.setLayout(new FlowLayout());
		tf=new TextField(10);//文本框
		f.add(tf);
		f.add(b);
		myEvent();
		f.setVisible(true);
	}
	public void myEvent()
	{
		f.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		//鼠标监听
		b.addMouseListener(new MouseAdapter()
		{
			public void mouseEntered(MouseEvent e)
			{
				//处理方式
			}
			public void mouseClicked(MouseEvent e)
			{
				
			}
		});
		//键盘监听
		b.addKeyListener(new KeyAdapter()
		{
			public void keyPressed(KeyEvent e)
			{
				/*if(e.getKeyCode()==KeyEvent.VK_ESCAPE)
					System.exit(0);*/
				
				//组合键
				if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_E)
					System.exit(0);
			}
		});
		//文本框监听
		tf.addKeyListener(new KeyAdapter()
		{
			public void keyPressed(KeyEvent e)
			{
				if(!(e.getKeyCode()>=KeyEvent.VK_0&&e.getKeyCode()<=KeyEvent.VK_9))
					{
					System.out.println("请输入数字");
					e.consume();
					}
			}
		});
	}
	public static void main(String[] args)
	{
		new MAK();
	}
}

 

具有查看目录文件功能的框(添加提醒对话框)

import java.awt.*;
import java.awt.event.*;
import java.io.*;

public class MyWindowDemo 
{
	private Frame f;
	private Button b;
	private TextArea ta;
	private TextField tf;
	
	//添加一个对话框
	private Dialog d;
	private Label l;
	private Button ok;
	
	MyWindowDemo()
	{
		init();
		init1();
	}
	public void init()
	{
		f=new Frame();
		b=new Button("-->");
		ta=new TextArea(20,55);
		tf=new TextField(50);
		//初始化frame
		f.setBounds(300, 200, 500, 400);
		f.setLayout(new FlowLayout());
		//添加组件
		f.add(tf);
		f.add(b);
		f.add(ta);
		//安装监听
		myEvent();
		
		f.setVisible(true);
	}
	//添加对话框
	public void init1()
	{
		d=new Dialog(f,"注意!");
		d.setBounds(310, 210, 200, 100);
		l=new Label();
		ok=new Button("OK");
		d.setLayout(new FlowLayout());
		
		d.add(l);
		d.add(ok);
		
		DialogEvent();
	}
	public void DialogEvent()
	{
		d.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				d.setVisible(false);
			}
		});
		ok.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				d.setVisible(false);
			}
		});
	}
	
	public void myEvent()
	{
		//关窗口
		f.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		//按钮按下
		b.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				getDir();
			}
		});
		//回车
		tf.addKeyListener(new KeyAdapter()
		{
			public void keyPressed(KeyEvent e)
			{
				if(e.getKeyCode()==KeyEvent.VK_ENTER)
					getDir();
			}
		});
	}
	public void getDir()
	{
		String dir=tf.getText();
		File Dir=new File(dir);
		if(Dir.exists()&&Dir.isDirectory())
		{
			ta.setText("");
			String[] lujing=Dir.list();
			for(String lj:lujing)
			{
				ta.append(lj+"\r\n");
			}
		}	
		else
		{
			String lab="找不到"+dir+"路径";
			l.setText(lab);
			d.setVisible(true);
		}
	}
	public static void main(String[] args)
	{
		new MyWindowDemo();
	}
}


带有菜单的Frame

import java.awt.*;
import java.awt.event.*;
public class MenuDemo 
{
	private Frame f;
	private MenuBar mb;
	private Menu m,m1;
	private MenuItem mi,mi1;
	MenuDemo()
	{
		init();
	}
	public void init()
	{
		f=new Frame("Menu");
		f.setBounds(300, 300, 500, 300);
		f.setLayout(new FlowLayout());
		f.setVisible(true);
		
		m=new Menu("File");
		m1=new Menu("功能");
		mb=new MenuBar();
		mi=new MenuItem("Exit");
		mi1=new MenuItem("功能1");
		f.setMenuBar(mb);
		mb.add(m);
		
		
		m.add(m1);
		m1.add(mi1);
		m.add(mi);
		Event();
		
	}
	
	public void Event()
	{
		f.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
		//定义mi退出
		mi.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				System.exit(0);
			}
		});
	}
	public static void main(String[] args)
	{
		new MenuDemo();
	}
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值