------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
事件监听机制的特点:
对话框依赖于窗体
Java.Awt和javax.Swing
重量级(需要调用本地系统方法实现)和轻量级(对系统的依赖性小,增强了可移植性)
java.Swt需要到eclipse网站下载
javax.Swing基于Awt
container组件能添加组件
常见的布局管理器
FlowLayout(流式布局管理器)
从左到右的顺序排列
Panel默认的布局管理器
BorderLayout(边界布局管理器)
东南西北中,只有一个会居中填充
Frame默认的布局管理器
GridLayout(网格布局管理器)
规则的矩阵(如计算器)
GardLayout(卡片布局管理器)
选项卡
GridBagLayout(网格包布局管理器)
非规则的矩阵
创建图形化界面
1.创建frame窗体
2.对窗体大小进行基本设置
如大小,位置,布局
3.定义组件
4.将组件通过窗体的add方法添加到窗体中
5.让窗体显示,通过setVisible(true)
import java.awt.*;
class AwtDemo
{
public static void main(String[] args)
{
Frame f = new Frame("my awt");
f.setSize(500,100);
f.setLocation(300,200);
f.setLayout(new FlowLayout());
Button b = new Button("按钮");
f.add(b);
f.setVisible(true);//使不可见的窗体可见
System.out.println("Hello World!");
}
}
事件监听机制的特点:
1.事件源:就是awt包或者swing包中的那些图形界面组件
2.事件:每一个事件源都有自己特有的对应事件和共性事件
3.监听器:将可以触发某一事件的动作封装到监听器中
以上三者Java已经定义好,直接获取对象就可以用
然后就是对产生的动作进行处理。
4.事件处理
WindowListener接口
只要方法超过3个的Listener一般都有适配器,WindowListener接口的适配器是WindowAdapter抽象类,实现了WindowListener,里面的方法为空,为了方便创建监听器对象避免了使用WindowListener的方法要覆盖七个方法的麻烦,可以需要哪个方法就覆盖哪个方法。
需要导入java.awt.*;java.awt.event.*;
class FrameDemo
{
private Frame f;
private Button but;
Frame()
{
init();
}
public void init()
{
f=new Frame("my frame");
//初始化窗体参数
but= new Button("my button");l
f.add(but);
f.setVisible(true);
myEvent();
//显示窗体
private void myEvent()
{
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.out.println("按下关闭时执行的动作");
}
public void windowActivated(WindowEvent e)
{
System.out.println("窗口活动时执行的动作");
}
public void windowOpened(WindowEvent e)
{
System.out.println("当窗口打开时执行的动作");
}
});
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("触发按钮执行的动作");
}
})
but.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount()==2)
System.out.println("双击");
}
})
but.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)
按下回车键执行的代码;
}
})
}
}
}
对话框依赖于窗体
private Dialog da;
private Label la;
private Button bo;
da = new Dialog(f," 提示信息",true);
//和frame相同具有边框布局
la = new Label();
bo = new Button("确定");
da = add(la);
da = add(bo);
da.setVisible(true);
菜单栏通过setMenuBar()向窗体添加菜单
MenuBar是一个大的菜单条
Menu可具有子条目
MenuItem是最终子条目项
private Frame f;
private MenuBar mb;
private Menu m;
private MenuItem closeItem;
mb = new MenuBar();
m = new Menu("文件");
closeItem = new MenuItem("退出");
f.setMenuBar(mb);
mb.add(m);
mb.add(closeItem);
文件对话框FileDialog打开保存
openDia = new FileDialog(f,"打开",FileDialog.LOAD);
saveDia = new FileDialog(f,"保存",FileDialog.SAVE);
openDia.setVisible(true);
打包
javac -d 存储目录 要编译的Java文件
编辑配置文件
再存储包的目录建立文件写入配置信息:
Main-Class: 目录名.主类文件(最后的回车是结束符不能省)
jar -cvf 命名 配置文件 要打包的文件夹
window中需要注册打开jar的文件类型