110 lines
3.8 KiB
Java
110 lines
3.8 KiB
Java
package view;
|
|
|
|
import backend.model.Questions;
|
|
import backend.service.impl.QuestionsService;
|
|
|
|
import javax.swing.*;
|
|
import java.awt.*;
|
|
|
|
public class EditQuestionDialog extends JDialog{
|
|
private JTextField nameTextField;
|
|
private JTextField descriptionTextField;
|
|
private JTextField answerTextField;
|
|
private JComboBox frequencyCombobox;
|
|
private JButton saveButton;
|
|
private JButton cancelButton;
|
|
private int type;
|
|
private Questions question;
|
|
private QuestionsService questionsService = new QuestionsService();
|
|
|
|
public EditQuestionDialog(int type, Questions question) {
|
|
this.type = type;
|
|
this.question = question;
|
|
initView();
|
|
}
|
|
|
|
public void initListener(){
|
|
saveButton.addActionListener(e->{
|
|
String name = nameTextField.getText().trim();
|
|
String description = descriptionTextField.getText().trim();
|
|
String answer = answerTextField.getText().trim();
|
|
if(name.equals("")|| description.equals("")|| answer.equals("")) {
|
|
JOptionPane.showMessageDialog(this, "请填写完整!");
|
|
return;
|
|
}
|
|
Questions questionsPo = new Questions();
|
|
questionsPo.setName(name);
|
|
questionsPo.setDescription(description);
|
|
questionsPo.setAnswer(answer);
|
|
Integer index=frequencyCombobox.getSelectedIndex();
|
|
questionsPo.setFrequency(index==0 ? null:index);
|
|
String message;
|
|
boolean res;
|
|
if(type==0) {
|
|
res = questionsService.insert(questionsPo);
|
|
message = "添加";
|
|
}
|
|
else{
|
|
questionsPo.setId(question.getId());
|
|
res = questionsService.update(questionsPo);
|
|
message = "修改";
|
|
}
|
|
if(res)
|
|
dispose();
|
|
else
|
|
JOptionPane.showMessageDialog(this, message+"失败");
|
|
});
|
|
cancelButton.addActionListener(e->{
|
|
dispose();
|
|
});
|
|
}
|
|
private void initView(){
|
|
setSize(400,300);
|
|
setLocationRelativeTo(null);//居中
|
|
add(initPanel());
|
|
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
|
|
setModal(true);//设置模态
|
|
if(type==0)
|
|
setTitle("添加问题");
|
|
else{
|
|
setTitle("修改问题");
|
|
nameTextField.setText(question.getName());
|
|
descriptionTextField.setText(question.getDescription());
|
|
answerTextField.setText(question.getAnswer());
|
|
frequencyCombobox.setSelectedIndex(question.getFrequency() == null? 0:question.getFrequency());
|
|
}
|
|
//细节:要先初始化监听器,再初始化界面
|
|
//初始化监听器
|
|
initListener();
|
|
//显示界面
|
|
setVisible(true);
|
|
}
|
|
private JPanel initPanel(){
|
|
JPanel mainPanel = new JPanel();
|
|
mainPanel.setLayout(new GridLayout(5,2));
|
|
//第一行 单词
|
|
mainPanel.add(new JLabel("问题"));
|
|
nameTextField = new JTextField();
|
|
mainPanel.add(nameTextField);
|
|
//第二行 定义
|
|
mainPanel.add(new JLabel("描述"));
|
|
descriptionTextField = new JTextField();
|
|
mainPanel.add(descriptionTextField);
|
|
//第三行 例句
|
|
mainPanel.add(new JLabel("答案"));
|
|
answerTextField = new JTextField();
|
|
mainPanel.add(answerTextField);
|
|
//第四行 频率
|
|
mainPanel.add(new JLabel("频率"));
|
|
frequencyCombobox = new JComboBox<>(new String[]{"未指定","低频","中频","高频"});
|
|
mainPanel.add(frequencyCombobox);
|
|
//第五行 按钮
|
|
saveButton = new JButton("保存");
|
|
cancelButton = new JButton("取消");
|
|
mainPanel.add(saveButton);
|
|
mainPanel.add(cancelButton);
|
|
return mainPanel;
|
|
}
|
|
|
|
}
|