【发布时间】:2013-12-05 21:44:19
【问题描述】:
所以我正在通过一个工作项目自学 Java(我自己发起了这个项目)。感谢这个网站的优秀用户,我的很多程序都在运行。
我的问题: 我有带有多个复选框的简单 GUI,可以选择。用户将选择一个或多个,然后单击启动代码的按钮,该代码将构建另一个程序所需的 ini 文件。到目前为止,我可以遍历每个复选框并获取选中的名称。基本上,现在,我知道下面的代码是错误的,因为它使用了 if 和 else if 语句,它们只是相互覆盖。
基本上,我希望用户能够选择 GUI 上的任何复选框,并让此类检查哪些复选框被选中,为每个选择分配实际的网络路径值并将它们附加在一起。根据我已经阅读的内容,我认为我需要使用 case 语句来完成此操作。
编辑:问题是,如何遍历每个选中的复选框,抓取文本,将文本字符串转换为多选的组合字符串
if (strRaw.equals("Site1")){
strRef = "source=NetworkPath1,";
}
else if (strRaw.equals("Site2")){
strRef = "source=NetworkPath2";
}
else if (strRaw.equal("Site3")){
strRef = "source=NetworkPath3";
}
示例 Checkbox1 被选中
Checkbox2 未选中
Checkbox3 被选中
Checkbox1.text = 某事
Checkbox3.text = 另一件事
输出字符串 = 某事,另一件事
任何帮助将不胜感激,就像我说我还在学习 Java。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.util.LinkedList;
import java.util.List;
import javax.swing.JCheckBox;
import javax.swing.JOptionPane;
public class MyActionListener implements ActionListener {
private final List<JCheckBox> checkBoxes = new LinkedList<JCheckBox>();
public void addCheckBox(JCheckBox checkBox) {
this.checkBoxes.add(checkBox);
}
public void actionPerformed(ActionEvent evt) {
// Iterate over each JCheckBox
for (JCheckBox checkBox : checkBoxes) {
if (checkBox.isSelected()) {
String strRaw = new String(checkBox.getText());
String strRef = new String();
try {
PrintWriter writer = new PrintWriter("C:\\Control\\test1.ini", "UTF-8");
writer.println("[TifSource]");
if (strRaw.equals("Site1")){
strRef = "source=NetworkPath1,";
}
else if (strRaw.equals("Site2")){
strRef = "source=NetworkPath2";
}
else if (strRaw.equal("Site3")){
strRef = "source=NetworkPath3";
}
writer.println(strRef + "\n");
writer.println("[Division]");
writer.println("division=divisionarea\n");
writer.println("[Area]");
writer.println("area=6\n");
writer.println("[TifIndex]");
writer.println("Updated=0");
writer.println("Version=81008");
writer.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JOptionPane.showMessageDialog(null, strRef);
};
}
}
}
【问题讨论】:
-
究竟是什么不工作?你还没有真正问过问题。
-
已尝试解决问题,抱歉我在工作时正在做这些帖子,正在解决客户计算机问题...
-
什么不起作用?代码看起来不错,因为您想逐行打印所有这些内容。