gpt4 book ai didi

java - 如何检查用户是否单击了 JPanel 中的任何按钮

转载 作者:行者123 更新时间:2023-11-30 08:09:08 25 4
gpt4 key购买 nike

我一直在做一个巴士预订项目,我已经做了一个预订页面。

名为PanelSeatJPanel,里面包含按钮(约36个按钮)。

我想检查是否单击了 JPanel 中的任何按钮,然后禁用该按钮,最后如果用户单击 util 3 按钮,它将停止或用户无法再单击它。

这是我到目前为止编写的代码:

private void CountTicket() {
try {
int count = 3;
Component[] components = PanelSeat.getComponents();
for (int i = 0; i < components.length; i++) {
if (components[i] instanceof JButton) {
if (((JButton) components[i]).isSelected()) { // I wanna check if any button is clicked by a user
if (JOptionPane.showConfirmDialog(this, "Seat Confirmation") == JOptionPane.YES_OPTION) { // confirm message
((JButton) components[i]).setEnabled(false); // disable the button
count--;
System.out.println("Your ramaining seat : " + count);
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}

}

如何检查按钮是否被点击?

最佳答案

既然你想计算一个按钮被按下的次数,然后用涉及的计数禁用它,我建议你包装 Jbutton 类,以便更容易地执行这些任务,这个解决方案通常更好

class JbuttonWrapper extends JButton {
int count=0;
public void increment()
{
count++;
if (count==numberOfclicksToDisable)
{
this.setEnabled(false);
}
}
}

//then you can simply do the following.
JbuttonWrapper [] buttons= new JbuttonWrapper [NumbersOfButtonsYouHave];
for (int i=0; i<=NumbersOfButtonsYouHave;i++)
{
buttons[i].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { buttons[i].increment(); } });
}

并且此解决方案基于您的代码

static int count=3;
Component[] components = PanelSeat.getComponents();
for (int i = 0; i < components.length; i++) {
if (components[i] instanceof JButton) {
{
components[i].addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
count--;
}
});
}

关于java - 如何检查用户是否单击了 JPanel 中的任何按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32689823/

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