完成了修改

This commit is contained in:
2025-12-28 21:58:11 +08:00
parent 7b874c3a49
commit 9aa97edb0e
6 changed files with 176 additions and 8 deletions

View File

@@ -0,0 +1,109 @@
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;
}
}