问题描述
private void bcsButtonActionPerformed(java.awt.event.ActionEvent evt) {
// Todo add your handling code here:
DefaultListModel model = new DefaultListModel<>();
for (Subject s : cCores) {
coreSubjectsList.setModel(model);
model.addElement(bcs.displayCores(s));
}
record1 = new Record(bcs.getCourseName());
ArrayList cores = new ArrayList<>(Arrays.asList(cCores));
record1.enrolCores(cores);
DefaultListModel model2 = new DefaultListModel<>();
for (Major m : BCSMajors) {
majorsList.setModel(model2);
model2.addElement(bcs.displayMajors(m));
}
DefaultListModel model3 = new DefaultListModel<>();
for (Subject s : cEles) {
this.electivesList.setModel(model3);
model3.addElement(bcs.displayElectives(s));
}
}
private void enrolButtonActionPerformed(java.awt.event.ActionEvent evt) {
// Todo add your handling code here:
String text = this.studNumberField.getText();
int studentNumber = Integer.parseInt(text);
String selection = group.getSelection().getActionCommand();
Student stud1 = new UnderGraduate(this.studentNameTextField.getText(),studentNumber,selection,this.dobField.getText(),"");
if (stud1 instanceof UnderGraduate) {
((UnderGraduate) stud1).writeFileUnderGrad();
record1.setStatus(Record.Status.ACTIVE);
record1.writeRecordFile();
}
}
对于enroll按钮,我想说明一种情况,如果选择了bcsButton,然后单击enrol,它将执行enroll方法中的内容。因为稍后我要创建另一个名为mcsButton的按钮,并给出两种情况,即如果选择了mcsButton,它将执行“ mcs的注册代码”,如果选择了bcsButton,它将执行“ bcs的注册代码”。有什么特别的方法可以做到吗?谢谢。我尝试使用类似的方法
if(evt.getSource() == bcsButton){
//put my code here
}
它什么也没运行。
解决方法
并给出两种情况,如果选择了mcsButton,它将执行“ mcs的注册代码”;如果选择了bcsButton,它将执行“ bcs的注册代码”。
通常,您会使用JRadioButton
。用户只能选择已添加到ButtonGroup
的两个按钮之一。
然后在“注册”按钮中进行检查,以查看已选择了哪个按钮并执行适当的逻辑。 ActionListener代码类似于:
if (mcsButton.isSelected())
processMCSEnrol();
else if (bcsButton.isSelected())
processBCSEnrol();
阅读How to Use Radio Buttons的Swing教程中的部分,以获取更多信息和工作示例。
编辑:
您需要一个变量,例如mcsSelected
。
在“ mcsButton”的ActionListener中添加:
mcsSelected = true;
在ActionListener的“ bcsButton”中添加:
mcsSelected = false;
在“ Enrol” ActionListener中添加:
if (mcsSeleced)
processMCS();
else
processBCS();