java gui构造工具_java GUI - xiahuawuyu - OSCHINA - 中文开源技术交流社区

一.概述:GUI图形用户界面

GLI命令行

二.包

java.Awt:抽象窗口工具包,需要调用本地系统方法实现功能。属重量级控件。

javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由JAVA实现。增强了移植性,属轻量级控件。

三.继承关系

Component:

Button

Label

Checkbox

TextComponent:TextArea、TextField

Container:Window:

Frame

Dialog:FileDialog

Panel

四.布局管理器

容器中的组件的排放方式,称为布局

流式布局:FlowLayout

边界布局:BorderLayout

网格布局:GridLayout

卡片布局:CardLayout

网格包布局:GridBagLayout

坐标式布局

五.实例

创建图形化界面:

1.创建frame窗体

2.对窗体进行基本设备,比如大小,位置,布局

3.定义组件

4.将组件通过窗体的add方法添加到窗体中。

5.让窗体显示,通过setVisible(true)

Frame f = new Frame(“wode frame”);

f.setSize(500,200);//x,y设置窗体大小

f.setLocation(300,200);//设备窗体显示的位置

f.setLayout(newFlowLayout());

Botton b = newButton(“按钮”);

f.add(b);

f.setVisible(true);

六.事件监听机制

1.将监听器注册到事件源

2.有监听器所监听的动作作于事件源上

3.产生事件对象

4.将事件对象传给事件处理方式

事件监听机制的特点:

1.事件源:就是awt包或者swing包中的那些图形界面组件

2.事件:每一个事件源都有自己特有的对应事件和共性事件

3.监听器:将可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中

以上三者,在JAVA中都已经定义好了,直接获取其对象来用就可以了。我们要做的事情是,就是对产生的动作进行处理。

4.事件处理:

//因为WindowListener的子类WindowAdapter已经实现了WindowListener的方法。所以只需要继承WindowAdapter类,复写所需要的方法即可。

f.addWindowListener(new WindowAdapter(){

public voidwindowClosing(WindowEvent e){

System.out.println(“close”);

System.exit(0);

}

});

七.Action事件

//让按钮具备退出程序的功能,按钮就是事件源。通过查阅button的描述,发现按钮支持一个特有监听:addActionListener。

but.addActionListener(new ActionListener(){

public voidactionPerformed(ActionEvent e){

System.exit(0);

}

});

八.鼠标、键盘事件

but.addMouseListener(newMouseAdapter(){

public voidmouseEntered(MouseEvent e){

System.out.println();

}

publicvoid mouseClicked(MouseEvent e){

if(e.getClickCount()==2){

System.out.println(“双击动作”);

}

}

});

-------键盘

but.addKeyListener(newKeyAdapter(){

public voidkeyPressed(KeyEvent e){

//组合键,按下ctrl+enter键执行

if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER){

System.exit(0);

}

}

});

-------文本框:只允许填写数字

tf.addKeyListener(newKeyAdapter(){

public void keyPressed(KeyEvent e){

int code= e.getKeyCode();

if(code>=KeyEvent.VK_0&& code<=KeyEvent.VK_9){

System.out.println(“非法输入”);

e.consume();

}

}

});

九.练习

资源管理器

地址栏、转到按钮、文本域

Dialog:提示框

菜单:MenuBar

importjava.awt.*;

importjava.awt.event.*;

class MyMenuDemo{

private Frame f;

private MenuBar mb;

private Menu m,submenu;

private MenuItem closeItem,subItem;

MyMenuDemo(){

init();

}

}

publicvoid init(){

f = new Frame(“my window”);

f.setBounds(300,100,500,600);

f.setLayout(new FlowLayout());

mb = new MenuBar();

m = new Menu(“文件”);

subMenu = new Menu(“子菜单”)

subItem= new MenuItem(“子条目”);

closeItem = new MenuItem(“退出”);

subMenu.add(subItem);

m.add(subMenu);

m.add(closeItem);

mb.add(m);

f.setMenuBar(mb);

myEvent();

f.setVisible(true);

}

privatevoid myEvent(){

f.addWindowClosing(WindowEvent e){

System.exit(0);

}

};

publicstatic void main(String[] args){

new MyMenuDemo();

}

FileDialog:选取对话框

newFileDialog(f , “打开”,fileDialog.LOAD);

newFileDialog(f , “保存”,fileDialog. SAVE);

十.JAR包

javac  –d c:\myclass  MyMenuTest.java

新建一个文件:1.txt

内容:Mian-Class:空格mymenu.myMenuTest回车

jar  -cvfm my.jar  1.txt  mymenu

MANIFEST.MF

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值