『壹』 java入門之Swing如何監聽用戶動作
方法/步驟
步驟一 : 構建一個窗口程序
我們先創建一個窗口程序,其中有兩個按鈕,目前這兩個按鈕單擊沒有任何反應!窗口目前沒有監聽我們的動作,也不會對我們的動作給出響應。
關於如何創建一個窗口程序,大家可以參考如下經驗 :
0JAVA入門之如何使用Swing實現第一個窗口應用
步驟二 : 創建按鈕的事件監聽類
Swing事件監聽介面和基類全部都在包 "java.awt.event" 中!對於按鈕控制項而言,其單擊事件監聽介面是 "java.awt.event.ActionListener"。 我們創建的事件監聽類要實現這個事件監聽介面,並重寫其中的方法 "actionPerformed" 方法 !
具體代碼為 :
// 按鈕單擊的事件監聽類必須繼承 java.awt.event.ActionListener 介面
public class BtnListener implements ActionListener {
// 表示我們單擊了哪個按鈕
private JButton theBtn;
// 默認構造函數
public BtnListener(){
super();
}
// 自定義構造函數,接受一個按鈕控制項,指示我們單擊的具體那個按鈕
// 你可以自定義任何構造函數,從外部接受你所需要的信息!
public BtnListener(JButton theBtn){
this();
this.theBtn = theBtn;
}
// 覆寫介面中的方法 : actionPerformed
@Override
public void actionPerformed(ActionEvent e) {
// 按鈕的 getText 方法返回按鈕上顯示的文字
String info = "你單擊了按鈕 : " + theBtn.getText();
JOptionPane.showMessageDialog(null, info , "單擊按鈕提示框",
JOptionPane.INFORMATION_MESSAGE);
}
}
『貳』 javaswing 按鈕監聽問題
因為你這個類實現了ActionListener介面,所以這個類本身就是一個監聽器,this指的就是這個監聽器類的對象,就是說用這個類的對象做為監聽器監聽著sub這個按鈕發出的行為事件。
『叄』 java swing 事件監聽 問題
那個控制項響應事件就要為那個事件綁定監聽事件,是滑鼠事件或鍵盤事件。
我的控制項.addKeyListener(鍵盤監聽事件),這里可以是內部類的形式,也可以是外部類,如果事件處理過程不是特別麻煩建議使用內部類
new KeyListener()
{
//因為KeyListener父類有三個方法
public void keyPressed(KeyEvent arg0) //鍵盤按下事件
{
int keycode =arg0.getKeyCode();//獲取按下鍵盤的編碼
if(keycode==xx)//當按下鍵的編碼是XX時。 鍵盤的編碼自己查,這個記不住,掌握了這個過程,你可以處理任何鍵盤事件。就連滑鼠事件也以此類推。
{
//處理過程
}
}
public void keyReleased(KeyEvent arg0) //鍵盤釋放事件
{
}
public void keyTyped(KeyEvent arg0) //這個是按下鍵的同時按下了alt、shift、ctrl等很少用到
{
}
}
『肆』 Java Swing中的鍵盤監聽事件
j.addKeyListener(new java.awt.event.KeyAdapter() {
publicvoid keyPressed(java.awt.event.KeyEvent evt) {
System.out.println("this evt:"+evt.getKeyChar());
}
});
『伍』 java swing 如何讓事件監聽立即返回
大概幫你修改下
mouselister(arge)
{
mouseclick()
{
//啟動一個線程去執行你的任務.就可以立即返回
Threadt=newThread(newRunnable(){
publicvoidrun(){
//dosomething你的代碼
}
});
t.start();
}
}
『陸』 java編程Swing編輯多個界面給多個界面中的按鈕設置監聽如何把按鈕監聽寫在一個方法里
import java.awt.event.*;
import javax.swing.*;
public class Test implements ActionListener{
public void actionPerformed(ActionEvent e){
if(e.getSourse().equals(button1)){
//do your work,如果按鈕1按下
}else if(e.getSourse().equals(button2)){}//button2........
}
JButton button1=new JButton(「b1」),button2=new JButton(「b2」);
//.......buttons
public Test(){
JFrame fra1=new JFrame(),fra2=new JFrame();//...frames
fra1.add(button1);
fra2.add(button2);
//add frame
button1.addActionListener(this);
button2.addActionLi
stener(this);
//add listener
fram1.setVisible(true);
fram2.setVisible(true);
}
public static void main(String[] args){
new Test();
}
}