JFrame复选框交互

时间:2014-05-23 11:02:16

标签: java eclipse jframe

我想问你一些关于JFrame的事情,我认为我错了,因为这种情况正在发生:

我已经放置了我的Window Form 2复选框(DocumentCheckBox和FilescheckBox)。这是代码

final JCheckBox DocumentCheckBox = new JCheckBox("Document");
ProduceDataDropDown.disable();
DocumentCheckBox.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {

        FilecheckBox.setSelected(false);
    }
});     
DocumentCheckBox.setFont(new Font("Times New Roman", Font.PLAIN, 14));
DocumentCheckBox.setBounds(184, 131, 123, 23);
contentPane.add(DocumentCheckBox);


final JCheckBox FilecheckBox = new JCheckBox("File");
FilecheckBox.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        DocumentCheckBox.setSelected(false);
    }
});
FilecheckBox.setFont(new Font("Times New Roman", Font.PLAIN, 14));
FilecheckBox.setBounds(184, 157, 123, 23);
contentPane.add(FilecheckBox);

这里有什么不对? .....第二个工作,但第一个无法找到FilecheckBox - 它说该类不存在。

简而言之,因为FilecheckBox低于DocumentCheckBox,所以无法识别它。

另一方面,DocumentCheckBox在第二部分被识别,因为它在上面,eclipse可以识别它。

有没有办法解决这个问题?我想要的是当我勾选一个复选框时,其他一个被取消选择。

提前致谢。

1 个答案:

答案 0 :(得分:1)

在调用FilecheckBox.setSelected(false)之后构造FileCheckBox; 与DocumentCheckBox同时构造它,然后它就能找到它。

final JCheckBox DocumentCheckBox = new JCheckBox("Document");
final JCheckBox FilecheckBox = new JCheckBox("File");
ProduceDataDropDown.disable();
DocumentCheckBox.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0) {

        FilecheckBox.setSelected(false);
    }
});     
DocumentCheckBox.setFont(new Font("Times New Roman", Font.PLAIN, 14));
DocumentCheckBox.setBounds(184, 131, 123, 23);
contentPane.add(DocumentCheckBox);


FilecheckBox.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {

        DocumentCheckBox.setSelected(false);
    }
});
FilecheckBox.setFont(new Font("Times New Roman", Font.PLAIN, 14));
FilecheckBox.setBounds(184, 157, 123, 23);
contentPane.add(FilecheckBox);