GUI 图形用户界面
java为GUI提供了对象都存在Java.Awt和javax.Swing两个包
Flow Layout(流式布局管理器)
从左到右的顺序排列
Panel默认的布局管理器
BorderLayout(边界布局管理器)
东,南,西,北
Frame默认的布局管理器
GirdLayout(网格布局管理器)
规则的矩阵
CardLayout(卡片布局管理器)
选项卡
GridBagLayout(网格包布局管理器)
非规则的矩阵
import java.awt.*;
import java.awt.event.*
Frame f=new Frame("my awt") //框架
f.setSize(横,纵) //框架长度
f.setLocation(横,纵) //坐标
f.setLayout(new FlowLayout()) //设置布局管理
Button b=new Button("a");
f.add(b);
f.setVisible(true); //显示框架
创建图形化界面:
1,创建frame窗体
2,对窗体进行基本设置。
比如大小,位置,布局。
3,定义组件
4,将组件通过窗体的add方法添加到窗体中。
5,让窗体显示,通过setVisible(true)
事件监听机制的特点:
1,事件源
2,事件
3,监听器
4,事件处理
事件源:就是awt包或者swing包中的那些图形界面组件。
事件:每一个事件源都有自己特有的对应事件和共性事件。
监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中。
以上三者,在Java中都定义好了。直接获取其对象来用就可以了。
我们要做的事情是,就是对产生的动作进行处理。
f.addWindowListener(new MyWin()) //添加指定的窗口焦点监听器
class MyWin extends WindowAdapter{
public void windowClosing(WindowEvent e){ //import java.awt.event.*
System.exit(0); //关闭窗口
}
}
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
WindowListener的子类WindowAdapter已经实现了WindowListener接口。
并覆盖了其中的所有方法。我们只要继承自WindowAdapter覆盖我需要的方法。
setBountds(x,y,width,heigh) //setLocatione+setSize
addActionListener按钮监听器 ,他没有adapter
but.addActionListener(new ActionListenr){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
addMouseListner 鼠标监听器,有MouseAdapter
but.addMouseListener(new MouseAdapter(){
public void mouseEntered(MouseEvent e){
System.out.
}
});
public void mouseCliscked(MouseEvent e){
if(e.getClickCount()==2)
System.out.println();
}}
addKeyListener 键盘监听器,有KeyAdapter
but.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
System.out.println(KeyEvent.getKeyText(e.getKeyCode()))
}
});
if(e.getKeyCode()==KeyEvent.VK_ESCAPE){
System.exit(0);
}
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER) //ctrl+enter
TextField
tf=new TextField(20)
tf.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e){
int code=e.getKeyCode();
if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9))
{
System.out.println(code+"feifa");
e.consume(); //屏蔽键
}}
});
TextArea
new TextArea(15,40);
append();
Dialog
d=new Dialog(f,"tishixinxi",true)
MenuBar
Menu
MenuItem
f.setMenuBar(mb)
menubar은 또여러가지 menuitem으로 이루어졋고
menuitem다음은 없다
closeItem.addActionListener
FileDialog
FileDialog.LOAD 保存 FileDialog.SAVE 打开
默认保存
openDia=new FileDialog(f,"我要打开",FileDialog.LOAD)
getDirectory();
getFile();