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实现,增强了移植性!轻量级控件!
![](https://img-blog.csdn.net/20140216133329203?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb2JqZWN0Mjc3OTEwMjc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。
布局
![](https://img-blog.csdn.net/20140216133345156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb2JqZWN0Mjc3OTEwMjc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
Frame
Container容器,是一个特殊的组件!该组件中可以通过add方法
添加其它组件进来!(添加对象进来。)
简单了解窗体方法:
五个小步骤:
![](https://img-blog.csdn.net/20140216133402468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb2JqZWN0Mjc3OTEwMjc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
事件监听机制
![](https://img-blog.csdn.net/20140216133416468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb2JqZWN0Mjc3OTEwMjc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20140216133454765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb2JqZWN0Mjc3OTEwMjc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
事件监听实现步骤
(1)确定事件源(容器或组件)
(2)通过事件源对象的addXXXListener()方法将侦听器注册到该事件源上。该方法中接收XXXListener的子类对象,
或者XXXListener的子类XXXAdapter的子类对象。(一般用匿名内部类来表示。)
(3)在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。
(4)事件触发后会把事件打包成对象传递给该变量。(其中包括事件源对象。通过getSource()或者,getComponent()获取。)
窗体事件
![](https://img-blog.csdn.net/20140216133508328?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvb2JqZWN0Mjc3OTEwMjc4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
Action事件
鼠标事件
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();//如果输入非法!输入内容不显示在文本中!
}
}
});
练习
对话框Dialog
Dialog d = new Dialog(Frame f,String information,boolean true);
为true!~窗口必须处理!不然无法点击别的!
如同窗体那样对待就可以了!
菜单
![](http://img2.ph.126.net/lhIE6w76bawBhF0Yoi6I3Q==/911697449666012657.jpg)
弄清楚下面控件关系就可以了!
menu:1.MenuBar 菜单栏
2.Menu 菜单
3.MenuItem 菜单项
练习-打开和保存文件
jar包双击执行
-------
android培训、java培训、期待与您交流! ----------
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!~窗口必须处理!不然无法点击别的!
如同窗体那样对待就可以了!
菜单
![](http://img2.ph.126.net/lhIE6w76bawBhF0Yoi6I3Q==/911697449666012657.jpg)
弄清楚下面控件关系就可以了!
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培训、期待与您交流! ----------
相关文章推荐
- JAVA - GUI学习 - GET测试工具
- JAVA GUI学习 - JDialog模式、非模式窗口组件学习
- JAVA GUI学习 - JTree树结构组件学习 ***
- 黑马程序员—java基础学习--GUI( 图形用户界面 )
- javaGUI学习——在面板上画一张图片
- Java 学习笔记 (8) - GUI编程之 Frame
- 黑马程序员-Java学习13-GUI
- java基础学习GUI编程
- java学习--GUI
- java学习--GUI4
- JAVA GUI学习 - JOptionPane对话框组件学习
- JAVA GUI学习 - 总结
- 写在学习Java GUI之前
- JAVA基础 day24 GUI的学习 事件监听机制 编写简易的记事本 jar包双击执行
- java学习笔记(三)——发布GUI程序
- Java学习心得之GUI编程(二)
- JAVA GUI学习 - JSplitPane分屏组件学习
- JAVA GUI学习 - JProgressBar进度条组件摘录
- JavaIO、JavaGUI、Java事件处理学习心得
- 黑马程序员--GUI界面编程--java学习日记9(基础知识)