黑马程序员----java基础图形化界面GUI
2018-04-11 23:06
627 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
GUI(图形用户界面)
开发GUI用到的包有:
java.awt--> Abstract Window Toolkit(重量级控件)
javax.swing-->轻量级控件
继承关系
Component
|--Button
|--Label
|--Checkbox
|==TextComponent
|--TextArea
|--TextField
|--Container
|--Window
|--Frame
|--Dialog
|--FileDialog
|--Panel
菜单栏的继承体系
MenuComponent
|--MenuBar
|--MenuItem
|--Menu
常见的布局管理器
FlowLayout(流式布局管理器)
从左到右的顺序摆放
Panel 的默认布局管理
BorderLayout (边界布局管理器)
东,南,西,北,中
Frame 的默认布局管理器
GridLayout (网格布局管理器)
规则的矩阵
CardLayout (卡片布局管理器)
选项卡
GridBagLayout (网格包布局管理器)
非规则的矩阵
/*
练习:创建一个窗体,并对按钮响应
*/
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;
class FrameDemo {
// 定义该图形中所需的组件的引用。
private Frame f;
private Button btn;
FrameDemo() {
init();
}
public void init() {
/**
* 创建一个窗口的步骤:
* 1. 创建Frame窗口
* 2. 对窗口进行基本设置
* 比如:大小,布局,位置
* 3. 定义组件.
* 4. 将组件通过窗体的添加方法添加到窗口中
* 5. 设置窗口为显示
*/
f = new Frame("my frame");
// 对frame进行基本设置。
f.setBounds(300, 100, 600, 500);
f.setLayout(new FlowLayout());
btn = new Button("my button");
// 将组件添加到frame中
f.add(btn);
// 加载一下窗体上事件。
myEvent();
// 显示窗体;
f.setVisible(true);
}
/**
* 事件监听机制特点:
* 1. 事件源(awt包或者swing包中的那些图形界面组件)
* 2. 事件()
* 3. 监听器
* 4. 事件处理
*
*/
private void myEvent() {
//对Frame退出事件处理
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 让按钮具备退出程序的功能
/*
* 按钮就是事件源。 那么选择哪个监听器呢? 通过关闭窗体示例了解到,想要知道哪个组件具备什么样的特有监听器。 需要查看该组件对象的功能。
* 通过查阅button的描述。发现按钮支持一个特有监听addActionListener。
*/
btn.addActionListener(new ActionListener() {
private int count = 1;
public void actionPerformed(ActionEvent e) {
Button b = (Button) e.getSource();
Frame f1 = (Frame) b.getParent();
f1.add(new Button("button-" + count++));
f1.validate();
}
});
}
public static void main(String[] args) {
new FrameDemo();
}
}
GUI(图形用户界面)
开发GUI用到的包有:
java.awt--> Abstract Window Toolkit(重量级控件)
javax.swing-->轻量级控件
继承关系
Component
|--Button
|--Label
|--Checkbox
|==TextComponent
|--TextArea
|--TextField
|--Container
|--Window
|--Frame
|--Dialog
|--FileDialog
|--Panel
菜单栏的继承体系
MenuComponent
|--MenuBar
|--MenuItem
|--Menu
常见的布局管理器
FlowLayout(流式布局管理器)
从左到右的顺序摆放
Panel 的默认布局管理
BorderLayout (边界布局管理器)
东,南,西,北,中
Frame 的默认布局管理器
GridLayout (网格布局管理器)
规则的矩阵
CardLayout (卡片布局管理器)
选项卡
GridBagLayout (网格包布局管理器)
非规则的矩阵
/*
练习:创建一个窗体,并对按钮响应
*/
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;
class FrameDemo {
// 定义该图形中所需的组件的引用。
private Frame f;
private Button btn;
FrameDemo() {
init();
}
public void init() {
/**
* 创建一个窗口的步骤:
* 1. 创建Frame窗口
* 2. 对窗口进行基本设置
* 比如:大小,布局,位置
* 3. 定义组件.
* 4. 将组件通过窗体的添加方法添加到窗口中
* 5. 设置窗口为显示
*/
f = new Frame("my frame");
// 对frame进行基本设置。
f.setBounds(300, 100, 600, 500);
f.setLayout(new FlowLayout());
btn = new Button("my button");
// 将组件添加到frame中
f.add(btn);
// 加载一下窗体上事件。
myEvent();
// 显示窗体;
f.setVisible(true);
}
/**
* 事件监听机制特点:
* 1. 事件源(awt包或者swing包中的那些图形界面组件)
* 2. 事件()
* 3. 监听器
* 4. 事件处理
*
*/
private void myEvent() {
//对Frame退出事件处理
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 让按钮具备退出程序的功能
/*
* 按钮就是事件源。 那么选择哪个监听器呢? 通过关闭窗体示例了解到,想要知道哪个组件具备什么样的特有监听器。 需要查看该组件对象的功能。
* 通过查阅button的描述。发现按钮支持一个特有监听addActionListener。
*/
btn.addActionListener(new ActionListener() {
private int count = 1;
public void actionPerformed(ActionEvent e) {
Button b = (Button) e.getSource();
Frame f1 = (Frame) b.getParent();
f1.add(new Button("button-" + count++));
f1.validate();
}
});
}
public static void main(String[] args) {
new FrameDemo();
}
}
//简易版记事本 import java.awt.FileDialog; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class MyMenuTest { /** * 定义需要的组件 */ private Frame f; private MenuBar bar; private TextArea ta; private Menu fileMenu; private MenuItem openItem, saveItem, closeItem; //定义文件打开 与保存对话框 private FileDialog openDia, saveDia; private File file; MyMenuTest() { init(); } public void init() { f = new Frame("my window"); f.setBounds(300, 100, 650, 600); bar = new MenuBar(); ta = new TextArea(); fileMenu = new Menu("File"); openItem = new MenuItem("Open File"); saveItem = new MenuItem("Save"); closeItem = new MenuItem("Exit"); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.add(closeItem); bar.add(fileMenu); f.setMenuBar(bar);//将菜单栏添加到Frame中 openDia = new FileDialog(f, "我要打开", FileDialog.LOAD); saveDia = new FileDialog(f, "我要保存", FileDialog.SAVE); f.add(ta); myEvent(); f.setVisible(true); } private void myEvent() { //对保存文件菜单事件处理 saveItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (file == null) { saveDia.setVisible(true); String dirPath = saveDia.getDirectory(); String fileName = saveDia.getFile(); if (dirPath == null || fileName == null) return; file = new File(dirPath, fileName); } try { BufferedWriter bufw = new BufferedWriter(new FileWriter(file)); String text = ta.getText(); bufw.write(text); bufw.close(); } catch (IOException ex) { throw new RuntimeException(); } } }); //对文件打开菜单事件处理 openItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { openDia.setVisible(true); String dirPath = openDia.getDirectory(); String fileName = openDia.getFile(); if (dirPath == null || fileName == null) return; ta.setText(""); file = new File(dirPath, fileName); try { BufferedReader bufr = new BufferedReader(new FileReader(file)); String line = null; while ((line = bufr.readLine()) != null) { ta.append(line + "\r\n"); } bufr.close(); } catch (IOException ex) { throw new RuntimeException("读取失败"); } } }); //对文件退出菜单事件处理 closeItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String[] args) { new MyMenuTest(); } }
相关文章推荐
- 黑马程序员--Java基础学习(GUI图形化界面)第二十二天
- 黑马程序员——Java基础--GUI(图形化界面)
- 黑马程序员—JAVA基础—GUI(图形化界面编程)
- 黑马程序员—java基础_GUI图形化界面
- 黑马程序员——Java基础--GUI图形化界面
- 黑马程序员:Java基础总结----GUI图形化界面
- 黑马程序员:Java基础总结----GUI图形化界面
- 黑马程序员——Java基础——GUI图形化用户界面
- Java图形化界面GUI-02-----黑马程序员
- 黑马程序员——Java基础---图形化界面
- 黑马程序员——Java基础---图形化界面编程
- 黑马程序员java学习笔记——GUI图形化界面
- 黑马程序员—Java图形化界面 GUI
- 黑马程序员--------------java基础----------------- 图形化界面
- 黑马程序员_JAVA学习日记_JAVA中图形化界面GUI编程
- 黑马程序员 ----java基础 GUI用户登入界面
- 黑马程序员_java GUI(图形化界面)概述
- Java基础---GUI(用户图形界面)(黑马程序员)
- 黑马程序员————Java基础日常笔记---(图形化用户界面)GUI
- 程序员_Java基础之<十三>图形化界面GUI