导航:首页 > 编程语言 > 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

友情链接