Cri*_*GdM 6 java swing jbutton
这将是一个真正的理论问题,请跟我一点.我需要用我的JButton做一些事情,我不知道从哪里开始.
所以我需要的是能够点击一个JButton,并有一个视觉证明它被选中,例如红色边框或白色背景或其他东西.而且我希望它保持这样,直到以相同的方式选择另一个JButton.现在,当我点击一个Jbutton时,会有一个简短的视觉显示点击它,但我不能让它持续更长时间.
我尝试使用ChangeListeners,但没有结果.
所以我的问题基本上是:你建议我尝试什么样的方法?
1 - 返回ChangeListener,它是唯一的选项2 - JButton有另一个选项可以做到这一点
对不起,如果它太模糊了,但我发现的其他一切都是超级具体的,并没有回答我的问题.
Hov*_*els 10
我想知道你是否想要使用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();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
看起来像是这样的:

| 归档时间: |
|
| 查看次数: |
6876 次 |
| 最近记录: |