java事件编程
① java事件处理button如何单击按钮退出
如果是要实现单击按钮退出,建议删掉这行代码:
if(e.getActionCommand().equals("Eixt"))
或者,将实现接口的两个类变为public的内部类,同时稍微修改下,如下
import java.awt.*;
import java.awt.event.*;
public class lesson1 {
private Frame f;
private Button b;
public lesson1() {
f = new Frame("event");
b = new Button("Exit");
}
public void launchFrame() {
b.addMouseListener(new ButtonHandler());
f.addWindowListener(new ClosingHander());
f.add(b, BorderLayout.CENTER);
f.setSize(400, 300);
f.setVisible(true);
f.setVisible(true);
f.setSize(400, 300);
}
public static void main(String args[]) {
lesson1 aa = new lesson1();
aa.launchFrame();
}
class ButtonHandler extends MouseAdapter {
public void mouseClicked(MouseEvent e)
{
if (e.getSource() == b) {
System.exit(0);
}
}
}
class ClosingHander extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
}
}
② java中什么是事件源,事件的处理过程是什么
在java的图形界面开发中,要让图形界面接收到用户的操作,就要给各个组件添加事件处理机制。
事件 : 为了实现用户对图形界面组件的操作,定义了一些事件
鼠标事件:单击,双击,滚轮等....
键盘事件 按下键盘,松开按键等...
焦点事件 :焦点获得 ,焦点失去...
窗口事件: 窗口打开,窗口关闭等....
事件源: 发声事件的场所. 比如按钮被点击,那么事件源就是按钮
文本框获得焦点. 那么事件源就是文本框
窗口被关闭,那么事件源就是窗口
事件源-----产生----->事件------>被事件监听器发现------>进入事件处理代码
importjava.awt.Frame;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
{//窗口就是事件源
publicDemoAction(){
this.setTitle("窗口关闭");
this.setLocation(400,200);
this.setSize(360,280);
//给窗口绑定一个事件监听器
this.addWindowListener(newWindowAdapter(){
@Override
publicvoidwindowClosing(WindowEvente){//事件WindowEvent
System.exit(0);//关闭窗口事件,那么退出jvm
}
});
this.setVisible(true);
}
publicstaticvoidmain(String[]args){
newDemoAction();
}
}
③ JAVA改变背景颜色
在Java编程中,可以使用AWT(抽象窗口工具包)来实现界面的基本操作。例如,通过监听鼠标事件来改变面板的背景颜色。下面是一个简单的例子,展示如何创建一个窗口,包含两个面板,并根据鼠标事件改变其中一个面板的背景颜色。
首先,我们需要导入必要的包,包括用于创建窗口和面板的AWT包,以及用于处理事件的Swing包。代码如下:
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.event.MouseInputListener;
接着,定义一个继承自JFrame的类Test,实现MouseInputListener接口,以便监听鼠标事件。
在Test类的构造函数中,我们设置了容器的内容布局为GridLayout,并添加了两个面板jp1和jp2。通过设置jp1的鼠标监听器为当前实例,使得当鼠标事件发生时,能够调用相应的方法来改变jp1的背景颜色。
通过重写MouseInputListener接口中的方法,我们可以实现特定的鼠标事件处理逻辑。例如,当鼠标进入jp1时,将其背景色设置为红色;当鼠标离开jp1时,将其背景色设置为蓝色。
完整代码如下:
public class Test extends JFrame implements MouseInputListener {
JPanel jp1,jp2;
public Test() {
Container c=getContentPane();
jp1=new JPanel();
jp2=new JPanel();
c.setLayout(new GridLayout(1,2));
c.add(jp1);
c.add(jp2);
jp1.addMouseListener(this);
setSize(200, 200);
setVisible(true);
}
public static void main(String[] args) {
Test t=new Test();
t.setDefaultCloseOperation(t.EXIT_ON_CLOSE);
}
public void mouseClicked(MouseEvent arg0) {}
public void mouseEntered(MouseEvent arg0) {
jp1.setBackground(Color.RED);
//当鼠标进入时候调用.
}
public void mouseExited(MouseEvent arg0) {
jp1.setBackground(Color.BLUE);
//当鼠标离开时候调用.
}
public void mousePressed(MouseEvent arg0) {}
public void mouseReleased(MouseEvent arg0) {}
public void mouseDragged(MouseEvent arg0) {}
public void mouseMoved(MouseEvent arg0) {}
}
通过这种方式,我们可以在Java程序中实现动态改变界面元素背景颜色的功能。