我有两个 JRadioButton,每个都有 ImageIcon。由于我正在使用 ImageIcons,我需要给出一个按钮被选中而另一个按钮未被选中的外观。为此,我尝试禁用另一个按钮,该按钮会自动将 ImageIcon 更改为禁用外观。
问题是当我单击禁用的 JRadioButton 时,什么也没有发生,甚至 JRadioButton 上的 ActionListener 也没有被调用。
有没有办法通过直接单击来启用禁用的 JRadioButton?一旦它被禁用,它的 ActionListener 就不再被调用,所以我不能通过点击它来启用它。
基本上我试图给出一个外观,当一个被选中时,另一个没有被选中,使用 ImageIcons。
//Below part of my code how I initialize the buttons
ButtonGroup codeSearchGroup = new ButtonGroup();
searchAllDocs = new JRadioButton(new ImageIcon(img1));
searchCurrDoc = new JRadioButton(new ImageIcon(img2));
RadioListener myListener = new RadioListener();
searchAllDocs.addActionListener(myListener);
searchCurrDoc.addActionListener(myListener);
codeSearchGroup.add(searchAllDocs);
codeSearchGroup.add(searchCurrDoc);
//Below listener class for buttons
class RadioListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(e.getSource() == searchAllDocs){
searchAllDocs.setEnabled(true);
System.out.println("Search All documents pressed. Disabling current button...");
searchCurrDoc.setEnabled(false);
}
else{
searchCurrDoc.setEnabled(true);
System.out.println("Search Current document pressed. Disabling all button...");
searchAllDocs.setEnabled(false);
}
}
}
提前致谢。