GUI以及事件监听机制
Posted 北方丶有佳人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GUI以及事件监听机制相关的知识,希望对你有一定的参考价值。
import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; 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) { //1.创建一个窗体,Frame Frame f = new Frame("my Frame"); //2.对窗体进行基本设置 f.setSize(500, 400); f.setLocation(400, 200); //设置布局 f.setLayout(new FlowLayout()); //给窗体添加组件 Button but = new Button("my button"); //加入一个文本框组件 TextField tf = new TextField(40); //将组件添加到窗体中 f.add(but); f.add(tf); /* * 需求:想要点击按钮有效果,比如打印一句话。 * 思路: * 1.确定事件源,按钮。 * 2.确定监听器。按钮添加监听器按钮对象最清楚,到按钮对象中查找。 * 3.定义处理方式 * * 定义的规范:XXXListener XXX监听器 --对应的XXXEvent事件 */ //1.在按钮上添加所需的监听器 but.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // System.out.println("按钮被触发了-----"+e); // System.exit(0); /*for (int i = 0; i < 4; i++) { for (int j = 0; j < 5; j++) { System.out.print("*"); } System.out.println(); }*/ } }); /* * 需求:想要实现点击窗体的X就可以实现窗体的关闭 * 思路: * 1.事件源:窗体。 * 2.监听器,通过窗口对象去查找。 * 3.事件处理 * * 到底哪些监听接口有适配器类 * 只要监听接口中的方法不大于两个,都没有适配器,适配器的出现只为方便创建对象。 * 但是,一般监听接口都由适配器 */ f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);; } @Override public void windowOpened(WindowEvent e) { System.out.println("孔雀开屏 window open"); } }); /* * 演示鼠标监听 * * 按钮事件源 * 鼠标监听器注册到按钮上 * * * 组件.addXXXListener(new XXXAdapter(){ * * public void methodName(XXXEvent e) * }) * */ but.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { /* * 想要对鼠标双击进行处理,应该找 鼠标事件对象,因为事件对象一产生,内部必然封装事件源以及事件相关的内容 * 要查MouseEvent对象 */ if(e.getClickCount()==2){ System.out.println("mouse double click"); } } }); /* * 需求:文本框中只能输入数字。 * 事件源:文本框 * 文本框上注册键盘监听 * 事件处理 */ tf.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { //1.如何获取录入的内容,通过键盘事件对象获取 // char key = e.getKeyChar(); // int code = e.getKeyCode(); // System.out.println(code+"****"+e.getKeyText(code)); // int code = e.getKeyCode(); // if(!(code>=e.VK_0&&code<=e.VK_9)){ // System.out.println("必须是0-9数字"); // e.consume();//取消默认处理方式 // } if(e.isControlDown()&&e.getKeyCode()==e.VK_ENTER){ System.out.println("ctrl+EnterRun"); } } }); //3.让窗体显示 f.setVisible(true); } }
以上是关于GUI以及事件监听机制的主要内容,如果未能解决你的问题,请参考以下文章