導航:首頁 > 編程語言 > java代碼觸發事件

java代碼觸發事件

發布時間:2023-12-08 02:51:46

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

思路,在線程b的操作中調用a.wait(),線程a中觸發的事件後面添加notify(),則在b執行到a.wait()的時候,回b等待a,a執行到notify(),通知a的等答待列表中的b線程進入鎖池,此時b有機會繼續執行,這樣就打到了線程b監聽a執行完事件

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

實現MouseListener介面.
新增一個專門的"滑鼠監聽器"類,或者直接在你現有的類中實現"滑鼠監聽器".具體做法是在類聲明語句中 MouseListener.如下:
public class MouseAdp implements MouseListener{

public MouseAdp(){}

public void mouseClicked(MouseEvent e) {
/**滑鼠點擊事件(包括按下和彈起兩個動作)處理方法.**/
System.out.println("你點了我!");
}

public void mouseEntered(MouseEvent e) {
/**滑鼠移到組件上方法時事件處理方法.**/}

public void mouseExited(MouseEvent e) {
/**滑鼠移開組件時事件處理方法.**/}

public void mousePressed(MouseEvent e) {
/**滑鼠在組件上按下(但沒彈起)時事件處理方法.**/}

public void mouseReleased(MouseEvent e) {
/**滑鼠在組件上彈起事件處理方法.**/}

}

然後在你的JLabel實例上,作用這個監聽器,如:
JLabel lab = new JLabel("點我");
lab.addMouseListener(new MouseAdp());

3. java swing 怎麼用一個監視器 監視2個窗口中同名按鈕(各一個),觸發不同事件(執行不同代碼

package實驗;
importjavax.swing.*;importjava.awt.event.*;
publicclasshaha{

publicstaticvoidmain(String[]args){

//調用c來啟動
newc();
}

}
classaextendsJFrame{
//第一個按鈕
JButtons=newJButton("ha");
a(){
this.setTitle("a!");
this.setVisible(true);
this.setLayout(null);
this.setBounds(100,100,600,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.add(s);
s.setBounds(100,100,100,50);
}
}

classbextendsJFrame{
//第二個按鈕
JButtons=newJButton("ha");
b(){
this.setTitle("b!");
this.setVisible(true);
this.setLayout(null);
this.setBounds(100,100,600,600);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.add(s);
s.setBounds(100,100,100,50);
}
}
{
//啟動a,b
aaa=newa();
bbb=newb();
c(){
//為兩個按鈕加監聽器
aa.s.addActionListener(this);
bb.s.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente){
//如果是a的按鈕
if(e.getSource()==aa.s){
System.out.println("我點了a的s");
}
//如果是b的按鈕
if(e.getSource()==bb.s){
System.out.println("我點了b的s");
}

}
}

4. java按鈕觸發事件問題

把另一個組件的事件寫進按鈕的監聽器里。

JButtonbutton=newJButton();
button.addActionListener(e->{
//組件要做的動作寫在這里
});

5. 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();
}
}

6. JAVA里 滑鼠點擊按鈕後,觸發事件,需要ActionEvent事件。關鍵是點擊時需

//創建按鈕
CreateJButton chooserJButton = new CreateJButton();
EventDeal eventDeal = new EventDeal();
//添加監聽事件
chooserJButton.addActionListener(eventDeal );
//監聽事件的實現類
public class EventDeal implements ActionListener {
//必須重寫此方法,對按鈕進行操作後系統會自動調用此方法
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
//調用你自己想要調用的方法
initEvent(jTextField);
}
public void initEvent(JTextField jTextField){
System.out.println("調用到方法")
}

}

7. java中swing的問題,關於按鈕下面也有按鈕時候事件的觸發

按鈕是我用label模仿的,button上添加事件後沒法觸發底層的滑鼠事件,不知道如何解決,下面是我實現的代碼,拖動的動畫效果還沒想出好的辦法, 裡面有獲取屏幕高寬的方法,可以實現panel居中,button相對於屏幕坐標的方法是在事件里調用e.getXOnScreen();e.getYOnScreen()這兩個方法:
public class Test {

public static void main(String[] args)
{
new Test().new MyFrame();
}

class MyFrame extends JFrame{
JLabel testBtn = new JLabel("test:");
int x;//x坐標
int y;//y坐標

public MyFrame(){

Dimension ss = Toolkit.getDefaultToolkit().getScreenSize();//獲取屏幕大小
//獲取內邊距
Insets screenInsets = Toolkit.getDefaultToolkit().getScreenInsets(this.getGraphicsConfiguration());
int taskBarHeight = screenInsets.bottom; //獲取底部 菜單欄高度
setBounds(ss.width/10, (ss.height-taskBarHeight)/10, ss.width/5*4, (ss.height-taskBarHeight)/5*4);
setLayout(null);
testBtn.setBounds(0, 0, 150, 30);
testBtn.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));

addMouseListener(new MouseAdapter() {
boolean flag = false;
int xMax;
int xMin;
int yMax;
int yMin;
@Override
public void mousePressed(MouseEvent e) {
System.out.println("x="+e.getX()+";y="+e.getY());

xMax = testBtn.getX()+testBtn.getWidth();
xMin = testBtn.getX();
//這里加了個30是標題欄的高度,如果有目錄欄,還需要加
yMax = testBtn.getY()+testBtn.getHeight()+30;
yMin = testBtn.getY();
//滑鼠點下位置為按鈕部分
System.out.println(e.getX()+";"+e.getY());
System.out.println(xMin+";"+xMin);
System.out.println(yMin+";"+yMin);
System.out.println(e.getX()>xMin&&e.getX()<xMax&&e.getY()<yMax&&e.getY()>yMin);
if(e.getX()>xMin&&e.getX()<xMax&&e.getY()<yMax&&e.getY()>yMin){
flag =true;
testBtn.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
testBtn.setLocation(e.getX()-testBtn.getWidth()/2, e.getY()-30-testBtn.getHeight()/2);
}else{
flag =false;
}
}
@Override
public void mouseReleased(MouseEvent e) {
if(flag ==true){
testBtn.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
testBtn.setLocation(e.getX()-testBtn.getWidth()/2, e.getY()-30-testBtn.getHeight()/2);
}
}
});

add(testBtn);
setVisible(true);
}
}

}

8. 大俠們!!怎樣在java文本框中觸發回車事件

importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;

{
publicProgram(){
initComponets();
}

protectedvoidinitComponets(){
Actionaction=newAbstractAction(){
@Override
publicvoidactionPerformed(ActionEvente){
JOptionPane.showMessageDialog(null,"觸發回車事件","提示",JOptionPane.PLAIN_MESSAGE);
}
};

JTextFieldjTextField=newJTextField(10);
jTextField.addActionListener(action);
getContentPane().setLayout(newFlowLayout());
getContentPane().add(jTextField);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(50,50,200,200);
}

publicstaticvoidmain(String[]args){
newProgram();
}
}

閱讀全文

與java代碼觸發事件相關的資料

熱點內容
電腦沒聯網怎麼拷貝文件 瀏覽:224
wps工具欄怎麼換成中文 瀏覽:338
win7和xp共享文件 瀏覽:883
蘋果4代音量鍵沒反應 瀏覽:827
怎樣打開tif文件 瀏覽:153
java下載文件zip 瀏覽:440
qq瀏覽器壓縮文件怎麼設密碼 瀏覽:526
黃埔數控編程哪裡好 瀏覽:406
mac109升級1010 瀏覽:691
在java的菜單如何導入文件 瀏覽:982
現在什麼網站銷量最高 瀏覽:760
angularjsclass定義 瀏覽:157
ug數控編程怎麼導出程序 瀏覽:466
cmdb文件 瀏覽:710
鵯文件夾 瀏覽:763
網路輿情應對的基本理念是什麼 瀏覽:433
word2007層次結構 瀏覽:456
去掉文件名的數字 瀏覽:713
word公司 瀏覽:710
淘寶店數據包怎麼上傳 瀏覽:341

友情鏈接