黑马程序员_Java(GUI(图形界面编程))

来源:互联网 发布:淘宝店铺图标怎么制作 编辑:程序博客网 时间:2024/06/03 15:58
------- android培训、java培训、期待与您交流! ----------
付出不一定有回报,但是不付出绝对没有回报!
1,GUI概述
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。然而这界面若要通过在显示屏的特定位置,以”各种美观而不单调的视觉消息“提示用户”状态的改变“,势必得比简单的消息呈现花上更多的计算能力。
2:GUI基本内容
(1)用户图形界面
GUI:方便直观
CLI:需要记忆一下命令,麻烦
(2)两个包:
java.awt:和系统关联较强
javax.swing:纯Java编写
(3)GUI的继承体系
组件:组件就是对象
容器组件:是可以存储基本组件和容器组件的组件。
基本组件:是可以使用的组件,但是必须依赖容器。
(4)事件监听机制
A:事件源
B:事件
C:事件处理
D:事件监听
(5)适配器模式(理解)
A:接口
B:抽象适配器类
C:实现类
(6)案例:
A:创建窗体案例
package cn.itcast_01;import java.awt.Dimension;import java.awt.Frame;import java.awt.Point;public class FrameDemo2 {public static void main(String[] args) {// 创建对象Frame f = new Frame("方法调用的前后关系");// f.setVisible(true);// try {// Thread.sleep(3000);// } catch (InterruptedException e) {// e.printStackTrace();// }// // f.setSize(400, 300);// // Dimension(int width, int height)// Dimension d = new Dimension(400, 300);// f.setSize(d);// // f.setLocation(400, 200);// // Point(int x, int y)// Point p = new Point(400, 200);// f.setLocation(p);// 一个方法搞定f.setBounds(400, 200, 400, 300);f.setVisible(true);}}

B:窗体关闭案例
package cn.itcast_02;import java.awt.Frame;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class FrameDemo {public static void main(String[] args) {// 创建窗体对象Frame f = new Frame("窗体关闭案例");// 设置窗体属性f.setBounds(400, 200, 400, 300);// 让窗体关闭//事件源//事件:对窗体的处理//事件处理:关闭窗口(System.exit(0));//事件监听//f.addWindowListener(new WindowListener() {//@Override//public void windowOpened(WindowEvent e) {//}////@Override//public void windowIconified(WindowEvent e) {//}////@Override//public void windowDeiconified(WindowEvent e) {//}////@Override//public void windowDeactivated(WindowEvent e) {//}////@Override//public void windowClosing(WindowEvent e) {//System.exit(0);//}////@Override//public void windowClosed(WindowEvent e) {//}////@Override//public void windowActivated(WindowEvent e) {//}//});//用适配器类改进f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});// 设置窗体可见f.setVisible(true);}}

C:窗体添加按钮并对按钮添加事件案例。
界面中的组件布局。
package cn.itcast_02;import java.awt.Frame;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class FrameDemo {public static void main(String[] args) {// 创建窗体对象Frame f = new Frame("窗体关闭案例");// 设置窗体属性f.setBounds(400, 200, 400, 300);// 让窗体关闭//事件源//事件:对窗体的处理//事件处理:关闭窗口(System.exit(0));//事件监听//f.addWindowListener(new WindowListener() {//@Override//public void windowOpened(WindowEvent e) {//}////@Override//public void windowIconified(WindowEvent e) {//}////@Override//public void windowDeiconified(WindowEvent e) {//}////@Override//public void windowDeactivated(WindowEvent e) {//}////@Override//public void windowClosing(WindowEvent e) {//System.exit(0);//}////@Override//public void windowClosed(WindowEvent e) {//}////@Override//public void windowActivated(WindowEvent e) {//}//});//用适配器类改进f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});// 设置窗体可见f.setVisible(true);}}

D:把文本框里面的数据转移到文本域
ublic class FrameDemo {public static void main(String[] args) {// 创建窗体对象Frame f = new Frame("数据转移");// 设置窗体属性和布局f.setBounds(400, 200, 400, 300);f.setLayout(new FlowLayout());// 创建文本框final TextField tf = new TextField(20);// 创建按钮Button bu = new Button("数据转移");// 创建文本域final TextArea ta = new TextArea(10, 40);// 把组件添加到窗体f.add(tf);f.add(bu);f.add(ta);// 设置窗体关闭f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});// 对按钮添加事件bu.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 获取文本框的值String tf_str = tf.getText().trim();// 清空数据tf.setText("");// 设置给文本域// ta.setText(tf_str);// 追加和换行ta.append(tf_str + "\r\n");//获取光标tf.requestFocus();}});// 设置窗体显示f.setVisible(true);}}


E:更改背景色
package cn.itcast_06;import java.awt.Button;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class FrameDemo {public static void main(String[] args) {// 创建窗体对象final Frame f = new Frame("更改背景色");// 设置窗体属性和布局f.setBounds(400, 200, 400, 300);f.setLayout(new FlowLayout());// 创建四个按钮Button redButton = new Button("红色");Button greenButton = new Button("绿色");Button buleButton = new Button("蓝色");// 添加按钮f.add(redButton);f.add(greenButton);f.add(buleButton);// 设置窗体关闭f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});// 对按钮添加动作事件// redButton.addActionListener(new ActionListener() {// @Override// public void actionPerformed(ActionEvent e) {// f.setBackground(Color.RED);// }// });// 对按钮添加鼠标点击事件// redButton.addMouseListener(new MouseAdapter() {// @Override// public void mouseClicked(MouseEvent e) {// f.setBackground(Color.RED);// }// });// 对按钮添加鼠标的进入事件redButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseEntered(MouseEvent e) {f.setBackground(Color.RED);}});redButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseExited(MouseEvent e) {f.setBackground(Color.WHITE);}});greenButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseEntered(MouseEvent e) {f.setBackground(Color.GREEN);}});greenButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseExited(MouseEvent e) {f.setBackground(Color.WHITE);}});buleButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseEntered(MouseEvent e) {f.setBackground(Color.BLUE);}});buleButton.addMouseListener(new MouseAdapter() {@Overridepublic void mouseExited(MouseEvent e) {f.setBackground(Color.WHITE);}});// 设置窗体显示f.setVisible(true);}}

F:设置文本框里面不能输入非数字字符
package cn.itcast_07;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.Label;import java.awt.TextField;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;/* * 你输入的如果是非数字字符,就取消你键盘录入的效果。 */public class FrameDemo {public static void main(String[] args) {// 创建窗体对象并设置属性Frame f = new Frame("不能输入非数字字符");f.setBounds(400, 200, 400, 300);f.setLayout(new FlowLayout());// 创建Label标签对象Label label = new Label("请输入你的QQ号码,不能是非数字,不信你试试");TextField tf = new TextField(40);// 添加到窗体上f.add(label);f.add(tf);// 设置窗体关闭f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});// 给文本框添加事件tf.addKeyListener(new KeyAdapter() {@Overridepublic void keyPressed(KeyEvent e) {// 如果你取得的字符不是数字字符就取消事件// 思路:先获取字符,判断字符,取消事件// char getKeyChar()  char ch = e.getKeyChar();//System.out.println(ch);if(!(ch>='0' && ch<='9')){e.consume();}}});// 设置窗体可见f.setVisible(true);}}

G:一级菜单
package cn.itcast_08;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;/* * 一级菜单 */public class FrameDemo {public static void main(String[] args) {// 创建窗体对象并设置属性Frame f = new Frame("一级菜单");f.setBounds(400, 200, 400, 300);f.setLayout(new FlowLayout());// 创建菜单栏MenuBar mb = new MenuBar();// 创建菜单Menu m = new Menu("文件");// 创建菜单项MenuItem mi = new MenuItem("退出系统");// 谁添加谁呢m.add(mi);mb.add(m);// 设置菜单栏f.setMenuBar(mb);// 设置窗体关闭f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});mi.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.exit(0);}});// 设置窗体可见f.setVisible(true);}}


H:多级菜单
package cn.itcast_09;import java.awt.FlowLayout;import java.awt.Frame;import java.awt.Menu;import java.awt.MenuBar;import java.awt.MenuItem;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.IOException;/* * 多级菜单 */public class FrameDemo {public static void main(String[] args) {// 创建窗体对象并设置属性final Frame f = new Frame("多级菜单");f.setBounds(400, 200, 400, 300);f.setLayout(new FlowLayout());final String name = f.getTitle();// 创建菜单栏MenuBar mb = new MenuBar();// 创建菜单Menu m1 = new Menu("文件");Menu m2 = new Menu("更改名称");// 创建菜单项final MenuItem mi1 = new MenuItem("好好学习");final MenuItem mi2 = new MenuItem("天天向上");MenuItem mi3 = new MenuItem("恢复标题");MenuItem mi4 = new MenuItem("打开记事本");MenuItem mi5 = new MenuItem("退出系统");// 谁添加谁呢m2.add(mi1);m2.add(mi2);m2.add(mi3);m1.add(m2);m1.add(mi4);m1.add(mi5);mb.add(m1);// 设置菜单栏f.setMenuBar(mb);// 设置窗体关闭f.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {System.exit(0);}});mi1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {f.setTitle(mi1.getLabel());}});mi2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {f.setTitle(mi2.getLabel());}});mi3.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {f.setTitle(name);}});mi4.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {Runtime r = Runtime.getRuntime();try {r.exec("notepad");} catch (IOException e1) {e1.printStackTrace();}}});mi5.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {System.exit(0);}});// 设置窗体可见f.setVisible(true);}}


(7)Netbeans的概述和使用
A:是可以做Java开发的另一个IDE工具。
B:使用
A:四则运算
a:修改图标
b:设置皮肤
c:设置居中
d:数据校验
B:登录注册

0 0
原创粉丝点击