黑马程序员——GUI图形用户界面-整理笔记
来源:互联网 发布:131458com淘宝账号查询 编辑:程序博客网 时间:2024/05/16 00:51
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、GUI介绍
GUI
- Graphical User Interface(图形用户接口)。
- 用图形的方式,来显示计算机操作的界面,这样更方便更直观。
CLI
- Command line User Interface (命令行用户接口)
- 就是常见的Dos命令行操作。
- 需要记忆一些常用的命令,操作不直观。
Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。
- java.Awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。
- javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。
一般的的布局管理器:
①FlowLayout:Panel默认的布局管理器,由左向右排列。
②BorderLayout:Frame的默认布局管理器边界式布局管理器,东南西北中的组织方式,
③GridLayout:矩阵网格式
④CardLayout:选项卡式布局管理器
⑤GridBayLayout:不是规则矩阵布局管理器,
主要容器为Container:
Window窗口,单独窗体容器。可以单独使用。
Frame:基本窗体框架。
Dialog:对话框。
Panel :面板容器。无法单独使用。存在于其他容器当中。
基本组件:大部分组件设置方式类似窗体属性设置。
主要基本组件:
Button:按钮
Checkbox:复选框
Choice:单选框
TextComponent:
TextArea:文本域
TextField:文本框(宽度设置为public TextField(int columns))
继承关系图
创建图形界面的步骤:
①创建Frame窗体。
②对窗体进行基本设置。比如大小、位置、布局。
③定义组件。
④将组件通过窗体的add方法添加到窗体中。
⑤让窗体显示,通过setVisible(true)
示例代码:
package day8;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 FrameDemo { //定义该图形中所需要的引用 private Frame f; private Button but; FrameDemo() { init(); } //对图形界面进行初始化 public void init() { f = new Frame("这是一个窗体"); // 对frame进行基本设置 f.setBounds(300, 400, 500, 600); f.setLayout(new FlowLayout()); but = new Button("button"); f.add(but); myEvent(); f.setVisible(true); } //设置事件 public void myEvent(){ //设置监听器 f.addWindowListener(new WindowAdapter() { //设置相应的事件动作 @Override public void windowClosing(WindowEvent arg0) { System.exit(0); } }); //添加一个按钮,具备退出功能 //按钮就是事件源 but.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { System.exit(0); } }); } public static void main(String[] args) { new FrameDemo(); } }
窗体菜单代码示例:
package day8;import java.awt.*;import java.awt.event.*;import java.io.*;class MenuDemo {private Frame f;private Menu m, m1, m2;private MenuBar mb;private MenuItem closeMenu, openItem, saveItem;private FileDialog openDia, saveDia;private TextArea ta;File file = null;// 文件对象MenuDemo() {init();}public void init() {f = new Frame("菜单");// 窗体设置f.setBounds(200, 100, 600, 600);mb = new MenuBar();m = new Menu("文件");m1 = new Menu("一级菜单");m2 = new Menu("二级菜单");closeMenu = new MenuItem("退出");openItem = new MenuItem("打开");saveItem = new MenuItem("保存");saveItem.setShortcut(new MenuShortcut(KeyEvent.VK_S));// 添加快捷命令// 打开 保存 对话框openDia = new FileDialog(f, "打开", FileDialog.LOAD);saveDia = new FileDialog(f, "保存", FileDialog.SAVE);// 文本框ta = new TextArea();// 将菜单相关组件 添加到窗体f.setMenuBar(mb);// 窗体添加菜单栏setMenuBar()mb.add(m);// MenuBar菜单栏中只能添加Menu不可以添加Menu的父类MenuItemm.add(openItem);m.add(saveItem);// m.addSeparator();//添加分割线m.add(m1);m1.add(m2);m.add(closeMenu);f.add(ta);/* * 代码添加顺序就是图形的顺序 一个菜单项只有一个图形显示 当第二次添加同一个菜单项的时候 之前添加此菜单项的语句被覆盖 或者说 失效 */myEvent();f.setVisible(true);}public void myEvent() {// 为窗体添加 监听器f.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});// 为菜单项 添加监听器closeMenu.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {System.exit(0);}});openItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {openDia.setVisible(true);// 打开文本文件 显示内容在文本框String dirPath = openDia.getDirectory();String fileName = openDia.getFile();System.out.println(dirPath + "...." + fileName);file = new File(dirPath, fileName);if (dirPath == null || fileName == null)return;ta.setText("");BufferedReader bfr = null;// 局部变量必须赋初始值try {bfr = new BufferedReader(new FileReader(file));String line = null;while ((line = bfr.readLine()) != null) {// System.out.println(line);ta.append(line + "\r\n");// 不要忘记添加换行符号}} catch (IOException io) {throw new RuntimeException("读取失败!");} finally {try {if (bfr != null)bfr.close();} catch (IOException ec) {throw new RuntimeException("关闭失败!");}}}});// 为保存按钮添加监听 通过监听事件 执行动作:保存文本 到文件saveItem.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (file == null) {saveDia.setVisible(true);String dirPath = saveDia.getDirectory();String fileName = saveDia.getFile();file = new File(dirPath, fileName);}BufferedWriter bfw = null;try {bfw = new BufferedWriter(new FileWriter(file));String text = ta.getText();// 返回文本组件内的文本bfw.write(text);bfw.flush();} catch (IOException ec) {throw new RuntimeException();} finally {try {if (bfw != null)bfw.close();} catch (IOException ec) {throw new RuntimeException("guan失败!");}}}});}public static void main(String[] args) {new MenuDemo();}}
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
- 黑马程序员——GUI图形用户界面-整理笔记
- 黑马程序员——图形用户界面GUI
- 黑马程序员——GUI图形用户界面
- 黑马程序员——GUI 图形用户界面
- 黑马程序员——GUI(图形用户界面)
- 黑马程序员——图形用户界面GUI
- 黑马程序员—GUI(图形用户界面)
- 黑马程序员—GUI图形用户界面
- 黑马程序员—图形用户界面GUI
- 黑马程序员—GUI(图形用户界面)
- 《黑马程序员》java笔记->GUI(图形用户界面)
- 黑马程序员——15Java图形用户界面GUI
- 黑马程序员——GUI(图形用户界面)
- 黑马程序员——GUI(图形用户界面)
- 黑马程序员——GUI(图形用户界面)
- 黑马程序员——图形用户界面GUI总结及练习
- 黑马程序员——Java基础---GUI(图形用户界面)
- 黑马程序员——JAVASE-GUI图形用户界面
- 每天一个linux命令(29):chgrp命令
- Hibernate异常:NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/
- gitosis权限控制
- TOJ 4118 IQ test
- 【Spark】Spark基本概念
- 黑马程序员——GUI图形用户界面-整理笔记
- listview中的控件点击
- 使用maven的tomcat:run进行web项目热部署
- Serializable:writeReplace
- 【Spark】弹性分布式数据集RDD概述
- Oracle成长点点滴滴(3)— 权限管理
- js性能调试
- MFC中控制ComboBox的下拉框高度
- SDN&NFV优化数据中心