您的位置:首页 > 产品设计 > UI/UE

Java学习第22天:GUI

2014-02-16 13:36 363 查看
 -------
android培训、java培训、期待与您交流! ---------- 

until22

GUI

1.概述

2.布局

3.Frame

4.时间监听机制

5.窗体时间

6.Action时间

7.鼠标时间

8.键盘时间

9.练习

10.对话框Dialog

11.菜单练习-打开和保存文件

12.jar包双击执行

 

概述

GUI(Graphical User Interface)图形用户接口!

使用的包有AWT和AWING包!

CLL(Command line User Interface)命令行用户接口

常见DOS命令行操作!

AWT包:抽象窗口工具包(调用本地窗口!依赖平台)

Swing包:在AWT基础上,建立一套图形界面系统,提供更多组件,而且完全由java实现,增强了移植性!轻量级控件!

 


Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。

布局

  

 

 

FlowLayout

Panel默认布局管理器

流式布局管理器

默认居中,组件从左到右排列

BorderLayout

Fram默认布局管理器

边界管理器

默认居中

GirdLayout

网格布局管理器

规则的矩阵

GardLayout

卡片布局管理器

选项卡

GirdBagLayout

网格包布局管理器

非规则矩阵

 


Frame

Container容器,是一个特殊的组件!该组件中可以通过add方法

添加其它组件进来!(添加对象进来。)

简单了解窗体方法:

需求

Code

注解

显示Frame

setVisible(true)

 

设置Frame长宽

setSize(len,width)

 

设置frame出现的xy

setLocation(len,width)

 

设置布局管理器

setLayout(new FlowLayout)

设置了流式布局管理

添加对象

使用add就可以了

 

五个小步骤:

 


事件监听机制

 




事件监听实现步骤

  (1)确定事件源(容器或组件)

  (2)通过事件源对象的addXXXListener()方法将侦听器注册到该事件源上。该方法中接收XXXListener的子类对象,

       或者XXXListener的子类XXXAdapter的子类对象。(一般用匿名内部类来表示。)

(3)在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。

(4)事件触发后会把事件打包成对象传递给该变量。(其中包括事件源对象。通过getSource()或者,getComponent()获取。)

窗体事件

 


Action事件

package until_22;
import java.awt.*;
import java.awt.event.*;
public class GUI_Demo1 {

public static void main(String[] args) {
/*
* Fram f = new Fram
* f.addWindowListener(new WindowAdapter()
* {
* public void windowClosing(WindowEvent e)//关闭窗体
* {
* System.exit(0);
* }
* public void windowActivated(WindowEvent e)
* {
* //当窗体被前置的时候触发
* }
* public viod windowOpened(WindowEvent e)
* {
* //窗体被打开的时候触发
* }
* }
*/
}

}
class Demo{
private Frame f;
private Button b;
Demo()
{
init();
}
public void init()
{
f = new Frame("Frame");
b = new Button("Button");
f.setBounds(200,200,500,500);
f.setLayout(new FlowLayout());
f.add(b);
myEvent();
f.setVisible(true);
}
public void myEvent()
{
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
}
}


 

鼠标事件

mouseClicked  鼠标点击事件

mouseEntered 鼠标进入组件调用

mouseExited 鼠标离开组件调用

mousePressed 鼠标按键在组件上按下时调用

mouseReleased 鼠标按钮在组件上释放时调用

b.addMouseListener(new MouseAdapter()

{

private int count = 1;

public void mouseEntered(MouseEvent e)

{

System.out.println("鼠标进入"+count++);

}

public void mouseClicked(MouseEvent e)

{

if(e.getClickCount()==2)

{

System.out.println("双击了");

}

}

});

 

 

 

键盘事件

ta.addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e)

{

//可以限制文本里面的输入信息!可以考虑使用正则表达式

int code = e.getKeyCode();

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

{

System.out.println("输入纯数字");

e.consume();//如果输入非法!输入内容不显示在文本中!

}

}

});

练习

package until_22;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
public class GUI_Practice {

public static void main(String[] args) {
new Demo_1();
}
}
class Demo_1
{
private Frame f;
private TextField tf;
private Button but;
private TextArea ta;
Demo_1()
{
init();
}
public void init()
{
f = new Frame("Frame");
f.setBounds(300,200,500,500);//距离左边,上边,长,宽
f.setLayout(new FlowLayout());
tf = new TextField(50);
but = new Button("button");
ta = new TextArea();
f.add(tf);
f.add(but);
f.add(ta);
myEvent();
f.setVisible(true);
}
public void myEvent()
{
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
but.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
String s = tf.getText();
File dir = new File(s);
if(dir.exists() && dir.isDirectory())
{
ta.setText("");
String[] str = dir.list();
for(String st : str)
{
//ta.setText(st+"\r\n");
ta.append(st+"\r\n");
}
}
}
});
}
}


 

对话框Dialog

Dialog d = new Dialog(Frame f,String information,boolean true);

为true!~窗口必须处理!不然无法点击别的!

如同窗体那样对待就可以了!

 

菜单



弄清楚下面控件关系就可以了!

menu:1.MenuBar 菜单栏

2.Menu 菜单

3.MenuItem 菜单项

package until_22;
import java.awt.*;
import java.awt.event.*;
public class GUI_Menu {

public static void main(String[] args) {
// TODO Auto-generated method stub
new Demo_2();
}

}
class Demo_2
{
private Frame f;
private Menu menu;
private Menu menu_1;
private MenuItem mi;
private MenuBar mb;
Demo_2()
{
init();
}
public void init()
{
f = new Frame();
f.setBounds(200,300,600,600);
f.setLayout(new FlowLayout());
mb = new MenuBar();
menu = new Menu("File");
menu_1 = new Menu("File_1");
mi = new MenuItem("打开");
menu.add(menu_1);
menu_1.add(mi);
mb.add(menu);
f.setMenuBar(mb);
myEvent();
f.setVisible(true);
}
public void myEvent()
{
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
}


练习-打开和保存文件

 

jar包双击执行

 

 

-------
android培训、java培训、期待与您交流! ----------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息