图形用户界面(一)GUI元素之判定事件源
2009-11-14 22:42
211 查看
一个监听器对象用来监听两个对象,如何判定事件源?
LeftRight .java(驱动程序)
LeftRightPanel .java
效果如图:
源程序如下:
import javax.swing.JFrame;
public class LeftRight {
public static void main(String[] args) {
JFrame frame = new JFrame("Right or Left");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new LeftRightPanel());
frame.pack();
frame.setVisible(true);
}
}
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class LeftRightPanel extends Panel {
private JButton left,right;
private Label label;
//另外定义盛放按钮的Panel
private JPanel buttonPanel;
public LeftRightPanel(){
left = new JButton("Left");
right = new JButton("Right");
ButtonListener listener = new ButtonListener();
left.addActionListener(listener);
right.addActionListener(listener);
label = new Label("Push a button");
buttonPanel = new JPanel();
buttonPanel.setPreferredSize(new Dimension(200,40));
buttonPanel.setBackground(Color.cyan);
buttonPanel.add(left);
buttonPanel.add(right);
setPreferredSize(new Dimension(200,80));
setBackground(Color.cyan);
add(label);
add(buttonPanel);
}
//判定事件源
public class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getSource() == left)
label.setText("Left");
else
label.setText("Right");
}
}
}
两个按钮被放到同一个buttonPanel面板中,这本面板不是由LeftRightPanel类表示的面板。将两个按钮放到同一个面板中,可以保证它们显示时的相对位置关系,即使用各种方法重置框架也不受影响。
LeftRight .java(驱动程序)
LeftRightPanel .java
效果如图:
源程序如下:
import javax.swing.JFrame;
public class LeftRight {
public static void main(String[] args) {
JFrame frame = new JFrame("Right or Left");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new LeftRightPanel());
frame.pack();
frame.setVisible(true);
}
}
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class LeftRightPanel extends Panel {
private JButton left,right;
private Label label;
//另外定义盛放按钮的Panel
private JPanel buttonPanel;
public LeftRightPanel(){
left = new JButton("Left");
right = new JButton("Right");
ButtonListener listener = new ButtonListener();
left.addActionListener(listener);
right.addActionListener(listener);
label = new Label("Push a button");
buttonPanel = new JPanel();
buttonPanel.setPreferredSize(new Dimension(200,40));
buttonPanel.setBackground(Color.cyan);
buttonPanel.add(left);
buttonPanel.add(right);
setPreferredSize(new Dimension(200,80));
setBackground(Color.cyan);
add(label);
add(buttonPanel);
}
//判定事件源
public class ButtonListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getSource() == left)
label.setText("Left");
else
label.setText("Right");
}
}
}
两个按钮被放到同一个buttonPanel面板中,这本面板不是由LeftRightPanel类表示的面板。将两个按钮放到同一个面板中,可以保证它们显示时的相对位置关系,即使用各种方法重置框架也不受影响。
相关文章推荐
- 图形用户界面(GUI)事件监听机制——窗体事件Frame
- 黑马程序员-12-java-GUI图形用户界面(2)-GUI事件响应机制
- 创建图形用户界面GUI和事件监听机制的简单实现(java)
- 图形用户界面(一)GUI元素之文本域
- 图形用户界面(一)GUI元素之JSlider
- 创建图形用户界面GUI和事件监听机制的简单实现(java)
- 图形用户界面(一)GUI元素之复选框
- 图形用户界面(一)GUI元素之单选框
- 黑马程序员_温习 GUI图形用户接口一 (个人笔记)摘要(GUI图形用户界面介绍-----布局管理器-----事件监听机制-----窗体事件---Action(执行事件)----鼠标事件----键
- 图形用户界面(一)GUI元素
- 图形用户界面(GUI)事件监听机制——窗体事件Frame
- Java基础 GUI图形用户界面 布局 事件 简易记事本 双击运行jar
- jQuery-根据元素属性添加事件
- jquery返回元素绑定的事件
- JavaScript读书笔记:页面元素的坐标和鼠标事件的坐标
- JavaScript事件模拟元素拖动
- Jquery-事件绑定未来元素
- java第八节 GUI/图形用户界面
- jquery append添加的元素事件无效
- 在jquery(1.7版)以及Ext(3.4版)中,查看在页面元素(domElement)上绑定的事件处理(listener、handler)