------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.GUI用户图形接口
和用户进行交互的方式:DOS,GUIjava为GUI提供的工具包:
a.java.Awt
抽象窗口工具包,调用本地系统方法实现功能。属于重量级控件
b.javax.Swing
完全由java实现的,增强移植性,属于轻量级控件。
Container:容器,该组件可通过add添加其他组件
2.布局管理器:就是管理组件的排放方式
3.事件监听机制:
a.事件源:就是awt包或者Swing包中的图形界面组件
b.事件:每一个事件源都有自己特有对应事件和共性事件
c.监听器:将可触发某一事件动作(不止一个动作)都已经封装到了监听器中。
d.处理方式:自定义
4.//创建一个java视图的小例子
import java.awt.*;
import java.awt.event.*;
class AwtDemo
{
public static void main(String[] args)
{
Frame f = new Frame("my java");
f.setLocation(400,200);
f.setSize(500,400);
f.setLayout(new FlowLayout());
Button b = new Button("push me");
f.add(b);
f.setVisible(true);
//对窗体进行监听
f.addWindowListener(new WindowAdapter()
{
//窗体关闭
public void windowClosing(WindowEvent e)
{
System.out.println("窗口关闭");
System.exit(1);
}
});
System.out.println("java GUI 示例");
}
}
5.窗体,按钮都具备监听事件
/*
创建一个能关闭的窗体。
在构造函数时,就初始化。
添加Button,使其也具备退出功能。
*/
import java.awt.*;
import java.awt.event.*;
class FrameDemo
{
private Frame f;
private Button b;
FrameDemo()
{
init();
}
//初始化窗体
private void init()
{
f = new Frame("my Frame");
//设置位置,和大小
f.setBounds(400, 200, 500,400);
f.setLayout(new FlowLayout());
b = new Button("push me!");
f.add(b);
myEvent();
f.setVisible(true);
}
//事件
private void myEvent()
{
//点击窗体关闭按钮,退出程序
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.out.println("窗体关闭程序");
System.exit(0);
}
});
//点击按钮,让其具备退出的程序的功能。
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.out.println("按钮关闭程序");
System.exit(0);
}
});
}
public static void main(String[] args)
{
FrameDemo f = new FrameDemo();
}
}
6.模拟windows,打开“计算机”页面。
/*
模拟windows,打开“计算机”页面。
可以通过地址栏,输入地址,找到指定的文件列表。
若是地址错误,则弹出一个dialog对话框。
若是地址正确,则将此目录下的文件和目录输出
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class MyWindowDemo
{
private Frame f;
private Button but;
private TextField tf;
private TextArea ta;
private Dialog d;
private Label lab;
private Button okBut;
MyWindowDemo()
{
init();
}
//窗口初始化
private void init()
{
f = new Frame("my window");
f.setBounds(300,100,600,500);
f.setLayout(new FlowLayout());
tf = new TextField(60);
but = new Button("转到");
ta = new TextArea(25,70);
//不操作此窗体(对话框),f则无法执行
d = new Dialog(f,"提示信息_self",true);
d.setBounds(400,200,240,150);
d.setLayout(new FlowLayout());
lab = new Label();
okBut = new Button("确定");
d.add(lab);
d.add(okBut);
f.add(tf);
f.add(but);
f.add(ta);
myEvent();
f.setVisible(true);
}
//监听事件
private void myEvent()
{
//按钮监听
but.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
textFiled_method();
}
});
//单行文本组件监听器
tf.addKeyListener(new KeyAdapter(){
//当按下回车键时,进行判断。
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
{
textFiled_method();
}
}
});
//关闭程序
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//关闭对话框
d.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
d.setVisible(false);
}
});
//按下对话框确定按钮,则隐藏对话框
okBut.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
d.setVisible(false);
}
});
//弹出对话框后,按下回车键,则隐藏对话框
okBut.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
{
d.setVisible(false);
}
}
});
}
/*按下按钮触发的事件
获取textField的内容,并判断是否是目录。
是:列出目录名,并添加到textArea中
否:显示对话框
*/
private void textFiled_method()
{
String path = tf.getText();
File f = new File(path);
if(f.exists() && f.isDirectory())
{
ta.setText("");
String[] names = f.list();
for(String name:names)
{
ta.append(name+"\r\n");
}
} else {
String info = "您输入的信息"+path+"错误,请重输";
lab.setText(info);
d.setVisible(true);
}
}
public static void main(String[] args)
{
new MyWindowDemo();
}
}
7.设置一个窗口,其中包含,菜单栏
/*
设置一个窗口
其中包含,菜单栏,即:
文件(f)
子菜单
子条目
退出
*/
import java.awt.*;
import java.awt.event.*;
class MyMenuDemo
{
private Frame f;
private Menu m,subMenu;
private MenuBar mb;
private MenuItem closeItem,subItem;
MyMenuDemo()
{
init();
}
//窗口初始化
private void init()
{
f = new Frame("my window");
f.setBounds(300,100,600,500);
f.setLayout(new FlowLayout());
mb = new MenuBar();
m = new Menu("文件(F)");
subMenu = new Menu("子菜单");
closeItem = new MenuItem("退出");
subItem = new MenuItem("子条目");
mb.add(m);
subMenu.add(subItem);
m.add(subMenu);
m.add(closeItem);
f.setMenuBar(mb);
myEvent();
f.setVisible(true);
}
//监听事件
private void myEvent()
{
//关闭程序
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
closeItem.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
}
public static void main(String[] args)
{
new MyMenuDemo();
}
}