Java窗体中的事件处理之Button
2016-12-19 12:45
253 查看
Java中的事件处理机制:
监听器对象是一个实现了特定监听器接口(Listener Interface)类的实例
事件源是一个能够注册监听器对象并发送事件对象的对象
当事件发送时候,事件源将事件对象传递给所以注册的监听器
监听器对象将利用事件对象中的信息决定如何做出响应
创建一个Buttontest窗体,里面包含三个按钮,点击按钮改变面板的背景颜色:
package com.Project_Button01;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ButtonFrame extends JFrame{
public ButtonFrame(){
this.setTitle("Buttontest");
this.setSize(400,400);
//create button
JButton yellowbutton=new JButton("Yellow");
JButton bluebutton=new JButton("Blue");
JButton redbutton=new JButton("red");
//add buttons to panel
buttonPanel=new JPanel();
buttonPanel.add(yellowbutton);
buttonPanel.add(bluebutton);
buttonPanel.add(redbutton);
//add panel to frame
this.add(buttonPanel);
//craete button actions
yellowbutton.addActionListener(new ColorAction(Color.YELLOW));
bluebutton.addActionListener(new ColorAction(Color.BLUE));
redbutton.addActionListener(new ColorAction(Color.RED));
yellowbutton.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mouseReleased");
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mousePressed");
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mouseExited");
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mouseEntered");
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
});
}
public class ColorAction implements ActionListener{
public ColorAction(Color c){
backgroundColor=c;
}
private Color backgroundColor;
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
buttonPanel.setBackground(backgroundColor);
}
}
private JPanel buttonPanel;
}
程序入口:
监听器对象是一个实现了特定监听器接口(Listener Interface)类的实例
事件源是一个能够注册监听器对象并发送事件对象的对象
当事件发送时候,事件源将事件对象传递给所以注册的监听器
监听器对象将利用事件对象中的信息决定如何做出响应
创建一个Buttontest窗体,里面包含三个按钮,点击按钮改变面板的背景颜色:
package com.Project_Button01;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ButtonFrame extends JFrame{
public ButtonFrame(){
this.setTitle("Buttontest");
this.setSize(400,400);
//create button
JButton yellowbutton=new JButton("Yellow");
JButton bluebutton=new JButton("Blue");
JButton redbutton=new JButton("red");
//add buttons to panel
buttonPanel=new JPanel();
buttonPanel.add(yellowbutton);
buttonPanel.add(bluebutton);
buttonPanel.add(redbutton);
//add panel to frame
this.add(buttonPanel);
//craete button actions
yellowbutton.addActionListener(new ColorAction(Color.YELLOW));
bluebutton.addActionListener(new ColorAction(Color.BLUE));
redbutton.addActionListener(new ColorAction(Color.RED));
yellowbutton.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mouseReleased");
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mousePressed");
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mouseExited");
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("mouseEntered");
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
});
}
public class ColorAction implements ActionListener{
public ColorAction(Color c){
backgroundColor=c;
}
private Color backgroundColor;
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
buttonPanel.setBackground(backgroundColor);
}
}
private JPanel buttonPanel;
}
程序入口:
package com.Project_Button01; import java.awt.EventQueue; import javax.swing.JFrame; public class StartMian { public static void main(String[] args) { // TODO Auto-generated method stub EventQueue.invokeLater(new Runnable() { @Override public void run() { // TODO Auto-generated method stub ButtonFrame frame=new ButtonFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } }
相关文章推荐
- Java 组件及事件处理实训 实训2:编写一个窗体程序,用于计算一元二次方程
- Java Swing界面编程(21)---事件处理:窗体事件
- Java图形界面中单选按钮JRadioButton和按钮Button事件处理
- Java Swing界面编程(27)---JRadioButton事件处理
- JAVA窗体使用小例子——不会使用布局怎么办?事件怎么处理?
- Java 组件及事件处理实训 实训1: 编写一个窗体程序,能够对文本区中的文字设置字体和大小。
- 为您的Java应用程序添加退出事件处理
- Java事件处理与发送
- 读Java事件处理机制
- Java事件处理模式
- asp.net运行时,动态添加Button(或其它控件),并处理相应的事件
- 为您的Java应用程序添加退出事件处理
- Java 事件处理实例
- Java事件处理与发送
- Java Swing中的键盘事件处理
- c++ builder里四种处理“鼠标离开窗体”事件的方法
- java的事件处理
- Java事件处理与发送原理
- DHTML中的事件处理- IE和Netscape分析比较 - 转 "java与模式",文章不错
- 为您的Java应用程序添加退出事件处理