我目前正在尝试为我的 JCheckBox
实现一个 Action 监听器,以便在选择它时,它将打开一个 JFileChooser
供用户选择他们想要的文件要使用的 GUI。对于初学者来说,我如何让控制台打印出“Box clicked!”当用户选中该框时?
自从我使用 Swing 编程以来已经有一段时间了,所以任何建议都会有帮助!
public class RadioPanel extends JPanel implements ActionListener
{
private static final long serialVersionUID = -1890379016551779953L;
private JCheckBox box;
private JLabel label;
public RadioPanel(String message)
{
this.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.WEST;
c.gridx = 0;
c.gridy = 0;
box = new JCheckBox();
this.add(box,c);
c.gridx = 1;
c.gridy = 0;
label = new JLabel(message);
this.add(label, c);
}
最佳答案
我认为这是因为代码没有事件监听器。 请参阅下面我的代码。
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
class RadioPanel extends JPanel implements ActionListener {
private static final long serialVersionUID = -1890379016551779953L;
private JCheckBox box;
private JLabel label;
public RadioPanel(String message) {
this.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.WEST;
c.gridx = 0;
c.gridy = 0;
box = new JCheckBox();
// here
box.addActionListener(event -> {
JCheckBox checkBox = (JCheckBox) event.getSource();
if (checkBox.isSelected()) {
System.out.println("Box clicked!");
}
});
this.add(box, c);
c.gridx = 1;
c.gridy = 0;
label = new JLabel(message);
this.add(label, c);
}
@Override
public void actionPerformed(ActionEvent e) {
}
}
关于java - 将 Action 监听器添加到 RadioPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54694458/