GUI:图形用户界面,Java不常用于创建桌面应用,所以用的比较少
一、概述:
二、Frame演示:
三、事件监听机制
1 import java.awt.Button; 2 import java.awt.FlowLayout; 3 import java.awt.Frame; 4 import java.awt.TextField; 5 import java.awt.event.KeyAdapter; 6 import java.awt.event.KeyEvent; 7 import java.awt.event.MouseAdapter; 8 import java.awt.event.MouseEvent; 9 import java.awt.event.WindowAdapter; 10 import java.awt.event.WindowEvent; 11 12 13 public class FrameDemo { 14 public static void main(String[] args){ 15 demo(); 16 } 17 18 public static void demo() { 19 //1、创建Frame对象,会开启一个线程 20 Frame f=new Frame("First Frame"); 21 //2、设置窗体的大小和位置 22 f.setSize(500, 400); 23 f.setLocation(400, 150); 24 //3、使用流式布局 25 f.setLayout(new FlowLayout()); 26 //4、添加其他组件 27 Button btn=new Button("按钮"); 28 TextField tf=new TextField(15); 29 f.add(tf); 30 f.add(btn); 31 eventDemo(f,btn,tf); 32 //5、显示窗体 33 f.setVisible(true); 34 } 35 36 public static void eventDemo(Frame f,Button btn,final TextField tf){ 37 /*可以给组件对象添加监听器,参数是处理事件的对象,可以对不同的事件进行不同的处理 38 * WindowAdapter是窗体监听器的适配器对象 39 * ActionListener是活动监听器对象 40 */ 41 f.addWindowListener(new WindowAdapter(){ 42 @Override 43 public void windowClosing(WindowEvent e){ 44 System.exit(0); 45 } 46 }); 47 // btn.addActionListener(new ActionListener(){ 48 // @Override 49 // public void actionPerformed(ActionEvent e){ 50 // System.exit(0); 51 // } 52 // }); 53 //鼠标监听器 54 btn.addMouseListener(new MouseAdapter(){ 55 private int count=1; 56 @Override 57 public void mouseEntered(MouseEvent e) 58 { 59 tf.setText(""+count++); 60 } 61 62 @Override 63 public void mouseExited(MouseEvent e) 64 { 65 tf.setText(""+count++); 66 } 67 68 }); 69 //键盘监听器 70 tf.addKeyListener(new KeyAdapter() 71 { 72 //键盘上的键有些是显示字符的,但是有些是控制键 73 @Override 74 public void keyPressed(KeyEvent e) 75 { 76 // System.out.println(e.getKeyChar()+":"+e.getKeyCode()); 77 int keyCode=e.getKeyCode(); 78 if(!(keyCode>=KeyEvent.VK_0&&keyCode<=KeyEvent.VK_9||keyCode==37||keyCode==39||keyCode==8)){ 79 //阻止默认事件的执行 80 e.consume(); 81 System.out.println("必须是数字"); 82 } 83 } 84 }); 85 } 86 }
Frame和事件简述
时间: 2024-10-29 19:07:50