Swing触发事件的3种方法
来源:互联网 发布:设计展板用什么软件 编辑:程序博客网 时间:2024/04/29 13:28
/** * 方法1 * 利用一个ActionListener来监听事件源产生的事件 * 用多个if来判断事件源 */import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.*;import javax.swing.*;public class M5{JFrame frame = new JFrame();JPanel jp1, jp2, jp3;//3个面板JLabel jlb1,jlb2;//两个标签JButton jb1,jb2;//两个按钮JTextField jtf1;//输入文本框JPasswordField jpf1;//输入密码框public static void main(String[] args) {// TODO 自动生成的方法存根new M5();}public M5(){//实例组件jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();jlb1 = new JLabel("用户名");jlb2 = new JLabel("密码");jb1 = new JButton("登入");jb2 = new JButton("取消");jtf1 = new JTextField(10);jpf1 = new JPasswordField(10);//设置成网格布局frame.setLayout(new GridLayout(3,1));//加入组件jp1.add(jlb1);jp1.add(jtf1);jp2.add(jlb2);jp2.add(jpf1);jp3.add(jb1);jp3.add(jb2);frame.add(jp1);frame.add(jp2);frame.add(jp3);DemoListener myListener = new DemoListener();//创建监听对象 jb1.addActionListener(myListener); jb2.addActionListener(myListener); frame.setTitle("标题"); frame.setSize(300, 150); frame.setLocation(200,200);//显示窗口true frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}private class DemoListener implements ActionListener{public void actionPerformed(ActionEvent e){String name = e.getActionCommand(); if (name.equals("登入")) JOptionPane.showMessageDialog(frame, "登入"); else if (name.equals("取消")) JOptionPane.showMessageDialog(frame, "取消");}}}
/** * 使用匿名内部类,虽然不用if判断事件源是是谁,但代码可读性差,都集中在了一起 */import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.*;import javax.swing.*;public class M2{JFrame frame = new JFrame();JPanel jp1, jp2, jp3;//3个面板JLabel jlb1,jlb2;//两个标签JButton jb1,jb2;//两个按钮JTextField jtf1;//输入文本框JPasswordField jpf1;//输入密码框public static void main(String[] args) {// TODO 自动生成的方法存根new M2();}public M2(){//实例组件jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();jlb1 = new JLabel("用户名");jlb2 = new JLabel("密码");jb1 = new JButton("登入");jb2 = new JButton("取消");jtf1 = new JTextField(10);jpf1 = new JPasswordField(10);//设置成网格布局frame.setLayout(new GridLayout(3,1));//加入组件jp1.add(jlb1);jp1.add(jtf1);jp2.add(jlb2);jp2.add(jpf1);jp3.add(jb1);jp3.add(jb2);frame.add(jp1);frame.add(jp2);frame.add(jp3); jb1.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(frame, "登入"); } } ); jb2.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(frame, "取消"); } } ); frame.setTitle("标题"); frame.setSize(300, 150); frame.setLocation(250,250);//显示窗口true frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}
/** * 避免方法2的混乱 */import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.*;import javax.swing.*;public class M3{JFrame frame = new JFrame();JPanel jp1, jp2, jp3;//3个面板JLabel jlb1,jlb2;//两个标签JButton jb1,jb2;//两个按钮JTextField jtf1;//输入文本框JPasswordField jpf1;//输入密码框public static void main(String[] args) {// TODO 自动生成的方法存根new M3();}public M3(){//实例组件jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();jlb1 = new JLabel("用户名");jlb2 = new JLabel("密码");jb1 = new JButton("登入");jb2 = new JButton("取消");jtf1 = new JTextField(10);jpf1 = new JPasswordField(10);//设置成网格布局frame.setLayout(new GridLayout(3,1));//加入组件jp1.add(jlb1);jp1.add(jtf1);jp2.add(jlb2);jp2.add(jpf1);jp3.add(jb1);jp3.add(jb2);frame.add(jp1);frame.add(jp2);frame.add(jp3);jb1.addActionListener(new Button1Handler());jb2.addActionListener(new Button1Handler()); frame.setTitle("标题"); frame.setSize(300, 150); frame.setLocation(250,250);//显示窗口true frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);} private class Button1Handler implements ActionListener { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(frame, "按钮1 被点击"); } } private class Button2Handler implements ActionListener { public void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(frame, "按钮2 被点击"); } } }
0 0
- Swing触发事件的3种方法
- 几种触发点击事件的方法
- JQuery触发事件的方法
- Activity中触发onClick事件3种方法
- javaSE Swing 按钮文本框触发事件
- 触发数据的事件对应查找方法
- 手动触发js事件的一种方法
- 解决FileSystemWatcher事件多次触发的方法
- JS中手动触发事件的方法
- js触发onchange事件的方法
- JS中手动触发事件的方法
- JS中手动触发事件的方法
- jquery选定元素触发事件的方法
- NGUI 触发事件的监听方法
- javaScript的on方法,动态触发事件
- JQuery自动触发事件的方法
- NGUI另一种按钮事件触发的方法
- 一些系统事件的手动触发方法
- 动态规划练习--13(最大上升子序列和)
- leetcode---Arithmetic Slices
- java AWT记事本
- 类延迟加载
- E
- Swing触发事件的3种方法
- The KITTI Vision Benchmark Suite之Semi-Convex Hull for Mesh Simplification
- css选择器的种类
- 把数组排成最小的数
- Linux
- 二叉树的层次遍历
- OpenCV1-读写图片,使用Matplotlib
- 剑指offer2.3.2字符串:有两个排序的数组A1和A2,内存在A1的末尾有足够多的空余空间容纳A2,编写一个函数,将A2合并到A1并排序
- Rightmost Digit