黑马程序员:JavaGUI
2014-01-15 21:46
393 查看
-------
android培训、java培训、期待与您交流! ----------
用图形的方式,来显示计算机操作的界面,这样更方便更直观。
就是常见的Dos命令行
需要记忆一些常用的命令,操作不直观。
Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。
javax.Swing:在AWT的基础上,建立的一套图形化系统,其中提供了更多的组件,而且完全由Java实现,增强了移植性,属于轻量级控件。
Frame默认的布局管理器
frame 的大小包括边界指定的所有区域。边界区域的尺寸可以使用 getInsets 方法获得,但是,由于这些尺寸是与平台相关的,因此在通过调用 pack或 show 将 frame 设置为可显示的之前,无法获得有效的 insets 值。由于 frame 的总大小包括了边界区,因此边界有效地模糊了 frame 的部分区域,约束了可用于在矩形中呈现和/或显示子部件的区域,矩形左上角的位置为 (insets.left, insets.top),宽度为 width - (insets.left + insets.right),长度为 height
- (insets.top + insets.bottom)。
frame 的默认布局为 BorderLayout。
2、对窗体进行简单的设置
3、定义组件
4、将组件添加到窗体
5、让窗体显示
例:
package com.java;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
public class AwtDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Frame frame = new Frame("我的第一个窗口");
frame.setSize(500, 300); //设置窗口的长和宽
frame.setLocation(300, 200); //设置窗口的初始化位置
frame.setLayout(new FlowLayout()); //设置布局方式
Button button1 = new Button("我是一个button");// 创建button
frame.add(button1); //添加button到frame
frame.setVisible(true); //设置窗口为可见
}
}
2、事件对象:每一个事件源都有自己特有的对应事件和共有事件
3、监听器:将可以触发某一事件的动作都已经封装到监听器中
以上三者,在java中都已经定义好了。直接获取其器对象来用就可以了。
我们要做的事情就是对动作进行处理。
4、事件处理。
例:
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FrameDemo {
/**
* @param args
*/
private Frame frame;
private Button button;
FrameDemo()
{
init();
}
public void init() {
frame = new Frame("my frame");
frame.setBounds(300,100,600,500);
frame.setLayout(new FlowLayout());
button = new Button("my button");
frame.add(button);
//加载窗体事件
myevent();
frame.setVisible(true);
}
private void myevent() {
frame.addWindowListener(new WindowAdapter() {
public void windowC
4000
losing(WindowEvent e) {
System.exit(0);
}
});
//让按钮具备退出程序的功能
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("exit");
System.exit(0);
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new FrameDemo();
}
}
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MouseAndKey {
/**
* @param args
*/
private Frame frame;
private Button button;
MouseAndKey()
{
init();
}
public void init() {
frame = new Frame("my frame");
frame.setBounds(300,100,600,500);
frame.setLayout(new FlowLayout());
button = new Button("my button");
frame.add(button);
//加载窗体事件
myevent();
frame.setVisible(true);
}
private void myevent() {
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//让按钮具备退出程序的功能
// button.addActionListener(new ActionListener() {
//
// @Override
// public void actionPerformed(ActionEvent arg0) {
// // TODO Auto-generated method stub
// System.out.println("exit");
// System.exit(0);
//
// }
// });
//鼠标事件监听
button.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
System.out.println("鼠标进入该组件");
}
});
//键盘事件监听
button.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyChar()+"..."+e.getKeyCode());
if(e.getKeyCode()==KeyEvent.VK_ESCAPE){
System.exit(0);
}
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MouseAndKey();
}
}
九、简单的小程序
简单的列出磁盘路径的小程序。
package com.java;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
public class AreaDemo {
/**
* @param args
*/
private Frame frame;
private Button button;
private TextArea textArea;
private TextField textField;
private Dialog dialog;
private Button okbutton;
private Label label;
AreaDemo(){
init();
}
public void init() {
frame = new Frame("my frame");
frame.setBounds(300,100,600,500);
frame.setLayout(new FlowLayout());
textField = new TextField(30);
button = new Button("转到");
textArea = new TextArea(15,40);
frame.add(textField);
frame.add(button);
frame.add(textArea);
frame.setVisible(true);
dialog = new Dialog(frame,"提示信息",true);
dialog.setBounds(400,200,240,150);
dialog.setLayout(new FlowLayout());
label = new Label();
okbutton = new Button("确定");
dialog.add(label);
dialog.add(okbutton);
myevent();
}
public void myevent() {
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String dirPath = textField.getText();
File dir = new File(dirPath);
if (dir.exists()&&dir.isDirectory()) {
textArea.setText("");
String[] names = dir.list();
for(String name:names )
textArea.append(name+"\r\n");
}else{
String infoString = "您输入的信息:"+dirPath+"错误!请重新输入。";
label.setText(infoString);
dialog.setVisible(true);
}
}
});
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
dialog.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dialog.setVisible(false);
}
});
okbutton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
dialog.setVisible(false);
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new AreaDemo();
}
}
android培训、java培训、期待与您交流! ----------
一、GUI概述
GUI
Graphical User Interface(图像化用户接口)用图形的方式,来显示计算机操作的界面,这样更方便更直观。
CLI
Command Line User Interface(命令行用户接口)就是常见的Dos命令行
需要记忆一些常用的命令,操作不直观。
Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。
二、Awt与Swing
java.Awt:Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能。属于重量级控件。javax.Swing:在AWT的基础上,建立的一套图形化系统,其中提供了更多的组件,而且完全由Java实现,增强了移植性,属于轻量级控件。
三、布局管理器
容器中的组件的排放方式,就是布局。常见的布局管理器:
FlowLayout(流式布局管理器)
从左到右的顺序排放Panel默认的布局管理器
BorderLayout(边界布局管理器)
东、南、西、北、中Frame默认的布局管理器
Gridlayout (网格布局管理器)
规则的矩阵GardLayout(卡片布局管理器)
选项卡GridbagLayout(网格包布局管理器)
非规则矩阵四、Frame
Frame 是带有标题和边界的顶层窗口。frame 的大小包括边界指定的所有区域。边界区域的尺寸可以使用 getInsets 方法获得,但是,由于这些尺寸是与平台相关的,因此在通过调用 pack或 show 将 frame 设置为可显示的之前,无法获得有效的 insets 值。由于 frame 的总大小包括了边界区,因此边界有效地模糊了 frame 的部分区域,约束了可用于在矩形中呈现和/或显示子部件的区域,矩形左上角的位置为 (insets.left, insets.top),宽度为 width - (insets.left + insets.right),长度为 height
- (insets.top + insets.bottom)。
frame 的默认布局为 BorderLayout。
创建简单的图形化界面:
1、创建frame窗体2、对窗体进行简单的设置
3、定义组件
4、将组件添加到窗体
5、让窗体显示
例:
package com.java;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
public class AwtDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Frame frame = new Frame("我的第一个窗口");
frame.setSize(500, 300); //设置窗口的长和宽
frame.setLocation(300, 200); //设置窗口的初始化位置
frame.setLayout(new FlowLayout()); //设置布局方式
Button button1 = new Button("我是一个button");// 创建button
frame.add(button1); //添加button到frame
frame.setVisible(true); //设置窗口为可见
}
}
五、事件监听机制组成
1、事件源(组件):awt或swing包中那些图像界面组件2、事件对象:每一个事件源都有自己特有的对应事件和共有事件
3、监听器:将可以触发某一事件的动作都已经封装到监听器中
以上三者,在java中都已经定义好了。直接获取其器对象来用就可以了。
我们要做的事情就是对动作进行处理。
4、事件处理。
六、窗体事件
窗体关闭事件例:
package com.java; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; public class AwtDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Frame frame = new Frame("我的第一个窗口"); frame.setSize(500, 300); //设置窗口的长和宽 frame.setLocation(300, 200); //设置窗口的初始化位置 frame.setLayout(new FlowLayout()); //设置布局方式 Button button1 = new Button("我是一个button");// 创建button frame.add(button1); //添加button到frame frame.addWindowListener(new Mywin()); frame.setVisible(true); //设置窗口为可见 } } class Mywin extends WindowAdapter{ public void windowClosing(WindowEvent e) { System.exit(0); } }
七、Action事件
package com.java;import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FrameDemo {
/**
* @param args
*/
private Frame frame;
private Button button;
FrameDemo()
{
init();
}
public void init() {
frame = new Frame("my frame");
frame.setBounds(300,100,600,500);
frame.setLayout(new FlowLayout());
button = new Button("my button");
frame.add(button);
//加载窗体事件
myevent();
frame.setVisible(true);
}
private void myevent() {
frame.addWindowListener(new WindowAdapter() {
public void windowC
4000
losing(WindowEvent e) {
System.exit(0);
}
});
//让按钮具备退出程序的功能
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("exit");
System.exit(0);
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new FrameDemo();
}
}
八、鼠标、键盘事件
package com.java;import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MouseAndKey {
/**
* @param args
*/
private Frame frame;
private Button button;
MouseAndKey()
{
init();
}
public void init() {
frame = new Frame("my frame");
frame.setBounds(300,100,600,500);
frame.setLayout(new FlowLayout());
button = new Button("my button");
frame.add(button);
//加载窗体事件
myevent();
frame.setVisible(true);
}
private void myevent() {
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//让按钮具备退出程序的功能
// button.addActionListener(new ActionListener() {
//
// @Override
// public void actionPerformed(ActionEvent arg0) {
// // TODO Auto-generated method stub
// System.out.println("exit");
// System.exit(0);
//
// }
// });
//鼠标事件监听
button.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
System.out.println("鼠标进入该组件");
}
});
//键盘事件监听
button.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
System.out.println(e.getKeyChar()+"..."+e.getKeyCode());
if(e.getKeyCode()==KeyEvent.VK_ESCAPE){
System.exit(0);
}
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MouseAndKey();
}
}
九、简单的小程序
简单的列出磁盘路径的小程序。
package com.java;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
public class AreaDemo {
/**
* @param args
*/
private Frame frame;
private Button button;
private TextArea textArea;
private TextField textField;
private Dialog dialog;
private Button okbutton;
private Label label;
AreaDemo(){
init();
}
public void init() {
frame = new Frame("my frame");
frame.setBounds(300,100,600,500);
frame.setLayout(new FlowLayout());
textField = new TextField(30);
button = new Button("转到");
textArea = new TextArea(15,40);
frame.add(textField);
frame.add(button);
frame.add(textArea);
frame.setVisible(true);
dialog = new Dialog(frame,"提示信息",true);
dialog.setBounds(400,200,240,150);
dialog.setLayout(new FlowLayout());
label = new Label();
okbutton = new Button("确定");
dialog.add(label);
dialog.add(okbutton);
myevent();
}
public void myevent() {
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
String dirPath = textField.getText();
File dir = new File(dirPath);
if (dir.exists()&&dir.isDirectory()) {
textArea.setText("");
String[] names = dir.list();
for(String name:names )
textArea.append(name+"\r\n");
}else{
String infoString = "您输入的信息:"+dirPath+"错误!请重新输入。";
label.setText(infoString);
dialog.setVisible(true);
}
}
});
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
dialog.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dialog.setVisible(false);
}
});
okbutton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
dialog.setVisible(false);
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new AreaDemo();
}
}
相关文章推荐
- 黑马程序员--Java中GUI小结
- 黑马程序员-----Java基础-----GUI
- 黑马程序员_关于java GUI的学习
- 黑马程序员——Java基础---GUI
- 黑马程序员,Java基础知识九:GUI图形用户界面
- 黑马程序员_java GUI编程
- 黑马程序员——JAVA笔记——GUI
- 黑马程序员—java技术blog—第十二篇java基础应用GUI模拟登陆注册
- 黑马程序员--java笔记13--图形用户接口GUI
- 黑马程序员----JAVA基础之GUI可视化编程与枚举&网络编程
- 黑马程序员_java GUI图形用户界面
- 黑马程序员——java基础-GUI
- 黑马程序员--GUI界面编程--java学习日记9(基础知识)
- 黑马程序员_java基础笔记(08)...GUI,网络编程,正则表达式
- 黑马程序员-->Java基础-->GUI
- 黑马程序员Java培训、Android培训_第8讲GUI/图形用户界面-3
- 黑马程序员 java基础24天 GUI编程学习总结
- 黑马程序员-java 基础之GUI
- 黑马程序员——Java基础--GUI
- 黑马程序员_java GUI