0
我正在寫一個用於人力資源管理的小型GUI程序,Insert類是當點擊按鈕「提交」時向MySQL添加人員,並且我有問題將從JTextField
讀取的值傳遞給HRActionListener
這是從ActionListener
,它只允許一個參數實現,我試圖在一個類中包含所有的按鈕事件。從JTextField傳遞值到ActionListener
這裏是插入,
AddGui and
HRActionListener`
public class Insert {
private int id;
private String name;
private String sex;
private String department;
private int salary;
public Insert(int id, String name, String sex, String department, int salary){
this.id = id;
this.name = name;
this.sex = sex;
this.department = department;
this.salary = salary;
}
public void insert(){
Connection conn = DBconn.getConn();
String sql = "insert into person values(?,?,?,?,?)";
PreparedStatement preparedStatement = null;
try {
preparedStatement = conn.prepareStatement(sql);
preparedStatement.setInt(1,id);
preparedStatement.setString(2,name);
preparedStatement.setString(3,sex);
preparedStatement.setString(4,department);
preparedStatement.setInt(5,salary);
//update
int rowsAffected = preparedStatement.executeUpdate();
} catch (SQLException ex) {
System.out.println("增加操作失敗");
} finally{
try {
if (preparedStatement!=null){
preparedStatement.close();}
if (conn != null){
conn.close();}
} catch (SQLException ex) {
System.out.println("close failed");
}
}
}
}
public class HRActionListener implements ActionListener{
public void actionPerformed(ActionEvent e) {
String string = e.getActionCommand();
if(string.equals("添加")){
new AddGui().ShowAddGui();
}}}
public class AddGui {
public void ShowAddGui() {
JFrame frame = new JFrame("添加");
Container con = new Container();
con.setLayout(new FlowLayout());
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(6,2));
JLabel label = new JLabel("添加新員工");
label.setHorizontalAlignment(JLabel.CENTER);
con.add(label);
JButton id = new JButton("工號:");
JTextField idField = new JTextField(5);
panel.add(id);
panel.add(idField);
JButton name = new JButton("姓名:");
JTextField nameField = new JTextField(5);
panel.add(name);
panel.add(nameField);
JButton sex = new JButton("性別:");
JTextField sexField = new JTextField(5);
panel.add(sex);
panel.add(sexField);
JButton depart = new JButton("部門:");
JTextField departField = new JTextField(5);
panel.add(depart);
panel.add(departField);
JButton salary = new JButton("工資:");
JTextField salaryField = new JTextField(5);
panel.add(salary);
panel.add(salaryField);
JButton addTo = new JButton("確定");
addTo.addActionListener(new HRActionListener());
JButton deleteTo = new JButton("取消");
panel.add(addTo);
panel.add(deleteTo);
con.add(panel);
frame.add(con);
frame.setVisible(true);
frame.setSize(220, 270);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}
你嘗試打開每個按鈕相同的新的幀的實例點擊? – Sanjeev
對不起,這裏可能會有一些中國字符引起誤解!我想要的是點擊添加按鈕時,信息用戶輸入可以插入數據庫! – ZoeH
如果那是真的,那麼你爲什麼要在你的actionPerformed中調用'new AddGui()。ShowAddGui();''這將永遠創造一個新的框架。相反,你需要在這裏調用insert方法。 – Sanjeev