我在表单上放了两个复选框。如果用户设置check1复选框而不是复选checkbox2,反之亦然。
public static void main(String[] args)
{ File file = null;
WordExtractor extractor = null;
try
{
file = new File("C:/Users/DSAL454/Desktop/Audit final.doc");
FileInputStream fis = new FileInputStream(file.getAbsolutePath());
FileOutputStream os = new FileOutputStream("C:/Users/DSAL454/Desktop/Audit fin.doc");
HWPFDocument document = new HWPFDocument(fis);
extractor = new WordExtractor(document);
System.out.println("total length ");
String[] fileData = extractor.getParagraphText();
for (int i = 0; i < fileData.length; i++)
{
if (fileData[i] != null)
System.out.println(fileData[i]);
String str1=fileData[i].replaceAll("[\"#%*:<>?/|]","_");
String str2=str1.replace("\\","_");
System.out.println(str2);
os.write(str2.getBytes());
}
}
catch (Exception exep)
{
exep.printStackTrace();
}
}
当我检查chRISING0并在chFR0上移动鼠标时会发生奇怪的问题。比chRISING0取消,即使我没有按下chFR0。 为什么?我做错了什么?
答案 0 :(得分:5)
如果您使用ButtonGroup
会更容易。有关详细信息,请参阅How to Use the ButtonGroup Component。
答案 1 :(得分:0)
<强>更新强>
我在之前的回答中混淆了两位听众(我没有对摆动进行一段时间的编码)。您必须使用ItemListener,因为它负责开/关更改。
chRISING0.addItemListener(new ItemListener() {
public void itemStateChanged(ChangeEvent e) {
chFR0.setSelected(false);
}
});
chFR0.addItemListener(new ItemListener() {
public void itemStateChanged(ChangeEvent e) {
chRISING0.setSelected(false);
}
});
已弃用:
chRISING0.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent e) {
chFR0.setSelected(false);
}
});
您正在使用ItemListener。尝试使用ChangeListener,就像使用第二个CheckBox一样。
chRISING0.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
chFR0.setSelected(false);
}
});
chFR0.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
chRISING0.setSelected(false);
}
});
ItemListener对组件状态更改做出反应(当您将鼠标悬停在组件上或点击它时状态会发生变化)与ChangeListener不同。