【发布时间】:2014-11-18 08:07:47
【问题描述】:
我目前正在做一个涉及文本字段和复选框的表单。我已经将复选框链接到文本字段,如果复选框被选中,则启用文本字段;当复选框被取消选中时,文本字段被禁用。
我现在的问题是,如果用户选择复选框并在文本字段中输入一些值,然后再次取消选中该复选框,我的程序仍会从禁用的文本字段中读取输入。有没有办法克服这个问题?以下是我的编码:
private void pnl1submitbtnActionPerformed(java.awt.event.ActionEvent evt) {
moduleFunc moduleFunc;
String module = moduletxtfield.getText();
double exam = Double.parseDouble(examtextfield.getText());
double ct = Double.parseDouble(cttextfield.getText());
double quiz = Double.parseDouble(quiztextfield.getText());
double assign = Double.parseDouble(asstextfield.getText());
try {
if (module.trim().isEmpty()) {
moduleerrorlbl.setText("Field cannot be empty");
}
else if (!(exam+ct+quiz+assign == 100)) {
markerrorlbl.setText("Total marks must be 100");
}
else
{
markerrorlbl.setText("");
moduleerrorlbl.setText("");
}
谢谢。
已编辑:
谢谢大家,我已经弄清楚它是如何工作的。
private void pnl1submitbtnActionPerformed(java.awt.event.ActionEvent evt) {
moduleFunc moduleFunc;
String module = moduletxtfield.getText();
double exam = 0.0, assign = 0.0, quiz = 0.0, ct = 0.0;
try {
if (module.trim().isEmpty()) {
moduleerrorlbl.setText("Field cannot be empty");
}
else if (OODJ.moduleRecord.containsKey(module)) {
moduleerrorlbl.setText("Module already exists!");
}
else {
if (examchkbox.isSelected()) {
exam = Double.parseDouble(examtextfield.getText());
}
if(ctchkbox.isSelected()) {
ct = Double.parseDouble(cttextfield.getText());
}
if(quizchkbox.isSelected()) {
quiz = Double.parseDouble(quiztextfield.getText());
}
if(asschkbox.isSelected()) {
assign = Double.parseDouble(asstextfield.getText());
}
if (!(exam + ct + quiz + assign == 100)) {
markerrorlbl.setText("Total marks must be 100");
}
else {
// self-coded
}
}
}
catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
【问题讨论】:
-
您还应该准备好代码约定。 (torsten-horn.de/techdocs/java-codingconventions.htm)
-
+1 用于发布答案
标签: java jtextfield jcheckbox