當前位置:首頁 » 編程語言 » java事件觸發

java事件觸發

發布時間: 2022-08-19 16:42:18

java按鈕觸發事件問題

可以使用按鈕單擊事件,改變其它組件的狀態,例如下面是一個計數器的例子:

importjava.awt.FlowLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;

importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;

publicclassDemo7extendsJFrame{

privateintcount=1;

publicDemo7(){

this.setSize(600,400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setLayout(newFlowLayout());

JLabellabel=newJLabel(String.valueOf(count));
this.add(label);

JButtonbutton=newJButton("ClickMe!");

//按鈕單擊事件,改變Label顯示文本
button.addActionListener(newActionListener(){

@Override
publicvoidactionPerformed(ActionEventarg0){

count++;
label.setText(String.valueOf(count));
}}
);
this.add(button);


}

publicstaticvoidmain(String[]args){

newDemo7().setVisible(true);

}

}

㈡ java自定義事件,線程a如何每一秒鍾觸發一個事件,然後另一個線程b監聽之,並作出反應

線程a是作為事件源,那麼線程a這個類就必須提供一個可以增加監聽器的方法,就像GUI編程中的addActionListener這個樣的方法。線程a這個類裡面是有一個專門存放監聽器的一個容器,例如是list。然後你 增加監聽器的方法就是把監聽器放進這個容器裡面。你用一個監聽器去監聽一個事件的發生,就可以在線程a這個類中,寫一個產生事件的一段代碼,然後每當產生一個事件之後,去遍歷list,去調用監聽器的對於這個事件的處理方法,這樣子就可以了。這應該就是java中的事件模式。

㈢ Java NIO 事件觸發問題

  1. 關於讀的觸發:利用多線程,在while(true)塊中,調用 socket的readLine(),一有數據就會讀了。

  2. 至於寫,是人為觸發的,比如按了回車鍵以後,調用socket.write().

㈣ JAVA 鍵盤事件觸發問題

你沒有API嗎?下面是java API對KeyEvent的解釋: getKeyChar 方法總是返回有效的 Unicode 字元或 CHAR_UNDEFINED。KEY_TYPED 事件報告字元輸入:KEY_PRESSED 和 KEY_RELEASED 事件不必與字元輸入關聯。因此, 可以保證 getKeyChar 方法的結果只對 KEY_TYPED 事件有意義。 對於按下鍵和釋放鍵事件,getKeyCode 方法返回該事件的 keyCode。對於鍵入鍵事件,getKeyCode 方法總是返回 VK_UNDEFINED。 「按下鍵」和「釋放鍵」事件 是低級別事件,依賴於平台和鍵盤布局。只要按下或釋放鍵就生成這些事件,它們是發現不生成字元輸入的鍵(如動作鍵、修改鍵等等)的惟一方式。通過 getKeyCode 方法可指出按下或釋放的鍵,該方法返回一個虛擬鍵碼。 虛擬鍵碼 用於報告按下了鍵盤上的哪個鍵,而不是一次或多次鍵擊組合生成的字元(如 "A" 是由 shift + "a" 生成的)。 例如,按下 Shift 鍵會生成 keyCode 為 VK_SHIFT 的 KEY_PRESSED 事件,而按下 'a' 鍵將生成 keyCode 為 VK_A 的 KEY_PRESSED 事件。釋放 'a' 鍵後,會激發 keyCode 為 VK_A 的 KEY_RELEASED 事件。另外,還會生成一個 keyChar 值為 'A' 的 KEY_TYPED 事件。 按下和釋放鍵盤上的鍵會導致(依次)生成以下鍵事件: KEY_PRESSED KEY_TYPED(只在可生成有效 Unicode 字元時產生。) 但在某些情況下(例如,在激活自動重復或輸入方法時),該順序可能會有所不同(並且與平台有關)。

㈤ 怎麼樣讓JAVA 設置一秒鍾觸發一個事件

你的代碼我不看了..長......
具體參考java.util.Timer類和java.util.TimerTask

TimerTask是一個虛類要實現裡面的run方法,run方法就是你時間到了以後要執行的方法.

送你一個蒸雞蛋的例子
import java.util.Timer;
import java.util.TimerTask;
public class EggTimer {
private final Timer timer = new Timer();
private final int minutes;
public EggTimer(int minutes) {
this.minutes = minutes;
}
public void start() {
timer.schele(new TimerTask() {
public void run() {
playSound();
timer.cancel();
}
private void playSound() {
System.out.println("Your egg is ready!");
// Start a new thread to play a sound...
}
}, minutes * 60 * 1000);
}
public static void main(String[] args) {
EggTimer eggTimer = new EggTimer(2);
eggTimer.start();
}
}
可以帖出去看看的...

㈥ JAVA,如何使下拉菜單被點擊後觸發事件

你可以給大菜單一個BOOL
bL變數,再給要選擇的小菜單一個BOOL
bs變數,
如果bl
==
TRUE
&&
bs
==
TRUE,那就是點擊了,如果bl
==
TRUE
&&
bs
==
FALSE
,就是沒有點擊。
或者你試試這個:給想監視的菜單添加ON_UPDATE_COMMAND_UI命令,如果它被點擊了,則會有一些操作在這里執行

㈦ 如何實現讓Java Label控制項觸發事件

之前遠標老師教過,你看下下面寫的行不行
1、現在我需要在一個label控制項上定義一個點擊事件,打開產生一個新的瀏覽器窗口。
2、Java JDK中的Label 類本身並不提供事件處理的方法,但應該注意到它是Component類的子類,從而可以通過如下的方法來完成,同時應該處理mouse事件較符合要求。
3、源程序的代碼如下:(已經調試通過)
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.net.*;
public class Applet1 extends Applet implements MouseListener
{
Canvas cv;
public void init()
{
initForm();
}
private final Label clickLabel = new Label("hello");
private URL url;
public void mouseClicked(MouseEvent e)
{
try
{
if(e.getSource() == clickLabel)
{
url = new URL("http://www.yahoo.com");
getAppletContext().showDocument(url,"new");
}
}
catch(MalformedURLException exc)
{
this.showStatus("Invalid URL: " + url);
}
}
public void mousePressed(MouseEvent e)
{
}
public void mouseReleased(MouseEvent e)
{
}
public void mouseEntered(MouseEvent e)
{
}
public void mouseExited(MouseEvent e)
{
}
void initForm()
{
clickLabel.addMouseListener(this);
this.add(clickLabel);
}
}

㈧ 關於java中的事件觸發問題: 為什麼按下鍵盤並釋放的時候KeyReleased方法沒有被調用,代碼如下:

你寫錯事件了,是實現keylistener事件不是繼承那個adapter類
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Test
{
JTextFieldtext1;
JTextFieldtext2;
public Test()
{
JFrame frame = new JFrame();
Container contain = frame.getContentPane();
text1 = new JTextField(10);
text2 = new JTextField(10);
MyKeyEvent e = new MyKeyEvent();
text1.addKeyListener(e);
contain.setLayout(new FlowLayout());
contain.add(text1);
contain.add(text2);
text1.setFocusable(true);
frame.pack();
frame.setVisible(true);
}
class MyKeyEvent implements KeyListener
{
@Override
public void keyTyped(KeyEvent e)
{
}
@Override
public void keyPressed(KeyEvent e)
{
}
@Override
public void keyReleased(KeyEvent e)
{
System.out.println(e.getKeyChar());
}
}
public static void main(String args[])
{
Test test = new Test();
}
}

㈨ java 自定義事件的觸發及監聽

JAVA事件響應機制

1,先自定義一個事件

public class MyEvent extends java.util.EventObject{
public MyEvent(Object source)
{
super(source);
}
}

2,再自定義一個監聽器

public class MyListener implements java.util.EventListener{
//這里是當事件發生後的響應過程
public void EventActivated(MyEvent me)
{
System.out.println("事件已經被觸發");
}
}

3,以下這個類為觸發事件的事件源

public class MyObject {
private Vector vectorListeners=new Vector();

public synchronized void addMyListener(MyListener ml)
{
vectorListeners.addElement(ml);
}

public synchronized void removeMyListener(MyListener ml)
{
vectorListeners.removeElement(ml);
}

protected void activateMyEvent()
{
Vector tempVector=null;

MyEvent e=new MyEvent(this);

synchronized(this)
{
tempVector=(Vector)vectorListeners.clone();

for(int i=0;i<tempVector.size();i++)
{
MyListener ml=(MyListener)tempVector.elementAt(i);
ml.EventActivated(e);
}
}

}

//定義一個公用方法用於觸發事件
public void test()
{
activateMyEvent();
}
}

4,測試類

public class Test {

public static void main(String[] args)
{
MyObject mo=new MyObject();

//注冊該事件
mo.addMyListener(new MyListener());

//觸發該事件
mo.test();
}
}

熱點內容
方舟怎麼設置伺服器 發布:2022-10-06 05:17:00 瀏覽:506
怎麼打開加密圖片 發布:2022-10-06 05:14:12 瀏覽:15
phpsmartyinclude 發布:2022-10-06 05:12:27 瀏覽:452
壓縮包比例 發布:2022-10-06 05:12:24 瀏覽:12
myeclipse導入sql 發布:2022-10-06 05:09:53 瀏覽:183
房車外部有哪些配置 發布:2022-10-06 05:06:32 瀏覽:395
chromejs腳本 發布:2022-10-06 05:04:20 瀏覽:869
eclipse編譯亂碼 發布:2022-10-06 04:58:52 瀏覽:857
可以存儲數據的 發布:2022-10-06 04:58:32 瀏覽:318
安卓如何連寬頻 發布:2022-10-06 04:50:57 瀏覽:587