如果在 java swing 中选择了另一个 jbutton,你如何在执行的按钮操作中创建一个案例?
How can you make a case inside a button action performed, based off if another jbutton is chosen in java swing?
我有这两个方法:
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();
}
}
对于注册按钮,我想举个例子,如果选择了 bcsButton,然后单击注册,它将执行注册方法中的内容。因为稍后我想制作另一个名为 mcsButton 的按钮,并提出两种情况,如果选择 mcsButton,它将执行“mcs 的注册代码”,如果选择 bcsButton,它将执行“bcs 的注册代码”。有什么特别的方法可以做到这一点吗?感谢you.I尝试过使用类似的东西:
if(evt.getSource() == bcsButton){
//put my code here
}
不过 运行 什么也没有。
and make two cases, that if mcsButton is chosen it will perform "the enrol code for mcs", and if bcsButton is chosen, it will perform "the enrol code for bcs".
您通常会为此使用 JRadioButton
。用户只能 select 已添加到 ButtonGroup
的两个按钮之一。
然后在您的“注册”按钮中检查哪个按钮已被 selected 并执行适当的逻辑。 ActionListener 代码类似于:
if (mcsButton.isSelected())
processMCSEnrol();
else if (bcsButton.isSelected())
processBCSEnrol();
阅读有关 How to Use Radio Buttons 的 Swing 教程部分,了解更多信息和工作示例。
编辑:
你需要一个变量,比方说,mcsSelected
。
在“mcsButton”的 ActionListener 中添加:
mcsSelected = true;
在“bcsButton”的 ActionListener 中添加:
mcsSelected = false;
在您添加的“注册”ActionListener 中:
if (mcsSeleced)
processMCS();
else
processBCS();
我有这两个方法:
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();
}
}
对于注册按钮,我想举个例子,如果选择了 bcsButton,然后单击注册,它将执行注册方法中的内容。因为稍后我想制作另一个名为 mcsButton 的按钮,并提出两种情况,如果选择 mcsButton,它将执行“mcs 的注册代码”,如果选择 bcsButton,它将执行“bcs 的注册代码”。有什么特别的方法可以做到这一点吗?感谢you.I尝试过使用类似的东西:
if(evt.getSource() == bcsButton){
//put my code here
}
不过 运行 什么也没有。
and make two cases, that if mcsButton is chosen it will perform "the enrol code for mcs", and if bcsButton is chosen, it will perform "the enrol code for bcs".
您通常会为此使用 JRadioButton
。用户只能 select 已添加到 ButtonGroup
的两个按钮之一。
然后在您的“注册”按钮中检查哪个按钮已被 selected 并执行适当的逻辑。 ActionListener 代码类似于:
if (mcsButton.isSelected())
processMCSEnrol();
else if (bcsButton.isSelected())
processBCSEnrol();
阅读有关 How to Use Radio Buttons 的 Swing 教程部分,了解更多信息和工作示例。
编辑:
你需要一个变量,比方说,mcsSelected
。
在“mcsButton”的 ActionListener 中添加:
mcsSelected = true;
在“bcsButton”的 ActionListener 中添加:
mcsSelected = false;
在您添加的“注册”ActionListener 中:
if (mcsSeleced)
processMCS();
else
processBCS();