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程序中實現動態改變界面元素背景顏色的功能。