黑马程序员-GUI

 

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

java对于图形界面编程提供了多个组件都存放在AWT和Swing包中。

awt:不跨平台,显示样式和颜色依赖于平台。

swing:跨平台的。

awt:

Component:

|--Button

|--Label

|--Checkbox

|--TextComponent

|--TextField

|--TextArea

|--Container

|--Window

|--Frame

|--Dialog

|--FileDialog

|--Panel

Container:是一个特殊的组件可以存放组件的组件。

 

public void createWindow() {
		Frame f = new Frame("my frame");
		f.setBounds(300,200,600,500);
		f.setLayout(new FlowLayout());
		Button but = new Button("my button");
		f.add(but);
		f.setVisible(true);
}	

--------------------------------------------------------------------------------------------------------------------------------------------

事件监听机制:

组成部分:

1,事件源(组件)

2,事件对象。

3,监听器。(封装了事件源对应的动作的对象);

4,事件处理器。(就是对相对应的动作进行内容的定义。)

在进行图形界面开发的时候,先明确事件源,使用事件源的addXXXListener方法将监听器与事件源相关联,也就是将监听器注册到事件源上。

当外部动作符合了监听器所监听的动作,并作用到了事件源上,那么就会产生相对应的事件对象。并该事件对象会被自动传入给对应的动作的参数。只要将对应动作的代码自定义即可。

 

public void myEvent() {
	f.addWindowListener(new WindowAdapter() {
	 public void windowClosing(WindowEvent e) {
			System.exit(0);
		}
	});
}

------------------------------------------------------------------------------------------------------------------------------------------

范例:

自定义一个窗体,可以通过录入的目录展现目录下的所有文件及文件夹名称。

 

class MyWindow {
	private Frame f;
	private TextField tf;
	private Button but;
	private TextArea ta;
	MyWindow() {
		init();
	}
	public void init(){
	 f = new Frame("my frame");
		f.setBounds(300,200,600,500);
		f.setLayout(new FlowLayout());

		tf = new TextField(60);
		but = new Button("转到");
		ta = new TextArea(25,70);
			
		f.add(tf);
		f.add(but);
		f.add(ta);
		f.setVisible(true);
	}
	private  void myEvent() {
		but.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				ta.setText("");
				String path = tf.getText();
				File dir = new File(path);
				if(dir.exists() && dir.isDirectory()) {
					String[] names = dir.list();
					for(String name : names) {
						ta.append(name+"\r\n");
					}
			 } else {
					Dialog dia = new Dialog(f,"提示信息",true);
					dia.setBounds(400,300,280,200);
					dia.setLayout(new FlowLayout());
						
					String info = "输入的目录"+path+"是错误的!";
					Label lab = new Label(info);
					Button but = new Button("哦了");

					dia.add(lab);
					dia.add(but);
					dia.setVisible(true);
				}
			}
		});
		f.addWindowListener(new WindowAdapter() {
		 public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
	}
}

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

 详细请查看:http://edu.csdn.net/heima/ 

你可能感兴趣的:(程序员)