我正在开发一个Swing
应用程序,该应用程序需要从另一个JCheckBox
的{{1}}中取消选中或检查JFrame
。我尝试了多种方法,但无法做到。
那可能吗?我的应用程序离线。
请帮我。谢谢
答案 0 :(得分:1)
这应该不是问题。你干了什么?
常见问题包括:
java.lang.Thread
,但是由于某种原因,GUI没有通过。这是您可能如何做的一个例子。
import javax.swing.*;
public class Example {
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(Example::go);
}
private static void go() {
ButtonModel model = new JToggleButton.ToggleButtonModel();
openFrame("Frame A", model);
openFrame("Frame B", model);
}
private static void openFrame(String title, ButtonModel checkModel) {
JFrame frame = new JFrame(title);
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JCheckBox checkBox = new JCheckBox("Tick me!");
checkBox.setModel(checkModel);
frame.add(checkBox);
frame.pack();
frame.setVisible(true);
}
}
答案 1 :(得分:1)
您还可以通过按钮来毫无问题地控制它:
import javax.swing.*;
import java.awt.Dimension;
public class Frames {
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
JCheckBox cb = new JCheckBox("Checkbox");
JButton b = new JButton("Click me!");
b.addActionListener(e -> cb.setSelected(!cb.isSelected()));
createFrame("Frame 1", cb);
createFrame("Frame 2", b);
});
}
private static void createFrame(String title, JComponent b) {
JFrame frame = new JFrame(title);
frame.add(b);
frame.setMinimumSize(new Dimension(300, 50));
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}