gpt4 book ai didi

java检测点击的按钮

转载 作者:行者123 更新时间:2023-12-01 17:39:24 26 4
gpt4 key购买 nike

我的 JFrame 窗口上有多个面板。我每次都会以不同的方式填充每个面板。例如:我启动 GUI:(图像中心面板、右侧面板、底部面板)。中心面板有 20 个按钮,右侧面板有 10 个按钮,底部面板有 3 个按钮。

第二次启动 GUI(相同的 GUI)。中心面板有 50 个按钮,右侧面板有 12 个按钮,底部有 3 个按钮。

所以每次都有随机数量的按钮,不可能都是唯一命名的。鉴于我没有每个按钮的唯一名称(只是一个列表),我想知道根据它们所属的面板单击了哪些按钮。那可能吗?

最佳答案

按钮正在以某种方式被创建;假设您以某种方式对它们进行编号,以便以后可以检索。

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.List;
import java.util.ArrayList;
import javax.swing.JButton;


public class ButtonTest extends JFrame implements ActionListener {

public ButtonTest() {
super();
initGUI();
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}

private final List<JButton> buttons = new ArrayList<JButton>();
private static final int NUM_BUTTONS = 20;

public void initGUI() {
JPanel panel = new JPanel();
for (int i = 0; i < NUM_BUTTONS; i++) {
String label = "Button " + i;
JButton button = new JButton(label);
button.setActionCommand(label);
button.addActionListener(this);
buttons.add(button);
panel.add(button);
}
getContentPane().add(panel);
}

public static void main(String[] args) {
new ButtonTest();
}

public void actionPerformed(ActionEvent e) {
String actionCommand = ((JButton) e.getSource()).getActionCommand();
System.out.println("Action command for pressed button: " + actionCommand);
// Use the action command to determine which button was pressed
}


}

关于java检测点击的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2901720/

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