gpt4 book ai didi

Java:检查 JButton 是否在 Frame MousePressListener 内按下

转载 作者:太空宇宙 更新时间:2023-11-04 12:52:02 26 4
gpt4 key购买 nike

我有 JFrame,里面有一个按钮。当用户单击框架上的任意位置时,我想检查按钮是否在其之前被按下或单击。

例如,如果用户在没有先单击按钮的情况下单击框架,则应显示“按钮未按下”,但如果用户单击按钮然后按框架上的任意位置,则应显示“按钮已按下”。

我的代码:

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Test1
{
public static void main(String[] args)
{
JFrame frame = new JFrame();

final int FRAME_WIDTH = 400;
final int FRAME_HEIGHT = 400;

frame.setSize(FRAME_WIDTH, FRAME_HEIGHT);
frame.setTitle("Test 1");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());

JPanel panel = new JPanel();
frame.add(panel,BorderLayout.NORTH);

final JButton btnRectangle = new JButton("Rectangle");
panel.add(btnRectangle);

class MousePressListener implements MouseListener
{
public void mousePressed(MouseEvent event)
{
int x = event.getX() ;
int y = event.getY() ;

System.out.println("you have press the mouse at X : " + x + " and Y : " + y);

if(btnRectangle.getModel().isSelected())
System.out.println("the button is pressed");
else
System.out.println("the button is NOT pressed");
}

public void mouseReleased(MouseEvent event){}
public void mouseClicked(MouseEvent event){}
public void mouseEntered(MouseEvent event){}
public void mouseExited(MouseEvent event){}
}

MousePressListener mListener = new MousePressListener();
frame.addMouseListener(mListener);

frame.setVisible(true);
}

}

如您所见,我尝试检查 JFrame MousePressed 监听器内是否单击了按钮。但没有成功。我也看看这个问题:

How can I check that JButton is pressed? If the isEnable() is not work?

但似乎无法到达任何地方,请帮忙

最佳答案

完成以下步骤,

public class Test2 
{
static boolean isPressed = false;

public static void main(String[] args)
{
.....
btnRectangle.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
isPressed = true;
}
});
.....


class MousePressListener implements MouseListener
{
public void mousePressed(MouseEvent event)
{
if(!isPressed){
System.out.println("the button is NOT pressed");

}else{
System.out.println("the button is pressed");
}
.....
}
}


}

}

查看输出,

enter image description here

关于Java:检查 JButton 是否在 Frame MousePressListener 内按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35727712/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com