gpt4 book ai didi

java - 如何实际选择一个 JButton

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:00:04 24 4
gpt4 key购买 nike

这将是一个真正的理论问题,请耐心等待。我需要用我的 JButton 做点什么,但我不知道从哪里开始。

所以我需要的是能够点击一个 JButton,并有一个它被选中的视觉证据,例如红色边框或白色背景等等。我希望它保持这种状态,直到以相同方式选择另一个 JButton。现在,当我点击一个 Jbutton 时,会有一个简短的视觉显示,表明它被点击了,但我不能让它持续更长时间。

我试着用 ChangeListeners 玩了一下,但没有结果。

所以我的问题基本上是:您建议我尝试哪种方法?

1 - 回到 ChangeListener,这是唯一的选择2 - JButton 有另一个选项可以做到这一点

抱歉,如果它太模糊,但我发现的其他所有内容都非常具体,并且没有回答我的问题。

最佳答案

我想知道您是否想使用 JToggleButton,也许将一个添加到 ButtonGroup 以便一次只选择一个按钮。

编辑
例如:

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class ToggleArray extends JPanel {
private static final int SIDE = 5;

public ToggleArray() {
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Button selected: " + e.getActionCommand());
}
};

setLayout(new GridLayout(SIDE, SIDE));
ButtonGroup btnGroup = new ButtonGroup();
for (int i = 0; i < SIDE * SIDE; i++) {
String text = String.format("[%d, %d]", i % SIDE, i / SIDE);
JToggleButton btn = new JToggleButton(text);
btn.addActionListener(listener);
btnGroup.add(btn);
add(btn);
}
}

private static void createAndShowGui() {
ToggleArray mainPanel = new ToggleArray();

JFrame frame = new JFrame("ToggleArray");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}

看起来像:
enter image description here

关于java - 如何实际选择一个 JButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8187766/

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