逐句分析 public void actionPerformed(ActionEvent e) { if(e.getSource()==submit){ //这就是宿管添加晚归记录的功能 try { PreparedStatement statement = connection.prepareStatement("insert into absent values(?,?,?,?,?)"); statement.setString(1, SnoText.getText()); statement.setString(2, SnameText.getText()); statement.setString(3, DnoText.getText()); statement.setString(4, AtimeText.getText()); statement.setString(5, AreasonText.getText()); statement.executeUpdate(); PreparedStatement state=connection.prepareStatement("select*from absent"); ResultSet resultSet = state.executeQuery(); while(a.getRowCount()>0){//把表格进行刷新,下次显示的时候重头开始显示 a.removeRow(a.getRowCount()-1); }
时间: 2024-03-18 11:42:48 浏览: 16
这是一个 Java 中的方法,名为 actionPerformed,接收一个 ActionEvent 类型的参数 e。该方法的访问权限为 public,表示在程序中任何地方都可以调用它。
在方法内部,通过判断事件源是否为 submit 按钮来执行宿管添加晚归记录的功能。如果是,则创建一个 PreparedStatement 对象,用于向数据库中插入数据,插入的数据包括五个字段的值,分别是 SnoText、SnameText、DnoText、AtimeText、AreasonText 的文本值。插入数据后,再创建一个 PreparedStatement 对象,用于查询数据库中的数据,并将查询结果存储在 ResultSet 对象中。接下来,通过 while 循环遍历表格 a 中的所有行,逐一删除,以便在下次显示时重新加载数据。整个方法的功能是向数据库中添加晚归记录,并刷新表格以显示最新的数据。
相关问题
@Override public void actionPerformed(ActionEvent e) {//触发此动作时执行 for (int i = 0; i < 10; i++) { if (e.getSource() == numberButtons[i]) {//返回最初发生 Event 的对象,那个对象被触发,就返回这个对象 textField.setText(textField.getText().concat(String.valueOf(i))); } } if (e.getSource() == decButton) { textField.setText(textField.getText().concat(".")); } if (e.getSource() == addButton) { num1 = Double.parseDouble(textField.getText()); operator = '+'; textField.setText(""); } if (e.getSource() == subButton) { num1 = Double.parseDouble(textField.getText()); operator = '-'; textField.setText(""); } if (e.getSource() == mulButton) { num1 = Double.parseDouble(textField.getText()); operator = '*'; textField.setText(""); } if (e.getSource() == divButton) { num1 = Double.parseDouble(textField.getText()); operator = '/'; textField.setText(""); } if (e.getSource() == equButton) { num2 = Double.parseDouble(textField.getText()); switch (operator) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': result = num1 / num2; break; } textField.setText(String.valueOf(result)); num1 = result; } if (e.getSource() == clrButton) { textField.setText(""); } if (e.getSource() == delButton) { String string = textField.getText(); textField.setText(""); for (int i = 0; i < string.length() - 1; i++) { textField.setText(textField.getText() + string.charAt(i)); } } } }请注释出每一步在做什么
这段代码实现了一个简单的计算器的基本功能,以下是每一步的注释:
```java
@Override
public void actionPerformed(ActionEvent e) {//触发此动作时执行
// 为数字按钮添加事件,将数字添加到文本框中
for (int i = 0; i < 10; i++) {
if (e.getSource() == numberButtons[i]) {//返回最初发生 Event 的对象,那个对象被触发,就返回这个对象
textField.setText(textField.getText().concat(String.valueOf(i)));
}
}
// 为小数点按钮添加事件,将小数点添加到文本框中
if (e.getSource() == decButton) {
textField.setText(textField.getText().concat("."));
}
// 为加号按钮添加事件,记录第一个数,将文本框清空,记录运算符
if (e.getSource() == addButton) {
num1 = Double.parseDouble(textField.getText());
operator = '+';
textField.setText("");
}
// 为减号按钮添加事件,记录第一个数,将文本框清空,记录运算符
if (e.getSource() == subButton) {
num1 = Double.parseDouble(textField.getText());
operator = '-';
textField.setText("");
}
// 为乘号按钮添加事件,记录第一个数,将文本框清空,记录运算符
if (e.getSource() == mulButton) {
num1 = Double.parseDouble(textField.getText());
operator = '*';
textField.setText("");
}
// 为除号按钮添加事件,记录第一个数,将文本框清空,记录运算符
if (e.getSource() == divButton) {
num1 = Double.parseDouble(textField.getText());
operator = '/';
textField.setText("");
}
// 为等于号按钮添加事件,记录第二个数,根据运算符计算结果并显示在文本框中,将结果记录为第一个数
if (e.getSource() == equButton) {
num2 = Double.parseDouble(textField.getText());
switch (operator) {
case '+':
result = num1 + num2;
break;
case '-':
result = num1 - num2;
break;
case '*':
result = num1 * num2;
break;
case '/':
result = num1 / num2;
break;
}
textField.setText(String.valueOf(result));
num1 = result;
}
// 为清除按钮添加事件,将文本框清空
if (e.getSource() == clrButton) {
textField.setText("");
}
// 为删除按钮添加事件,删除文本框中最后一个字符
if (e.getSource() == delButton) {
String string = textField.getText();
textField.setText("");
for (int i = 0; i < string.length() - 1; i++) {
textField.setText(textField.getText() + string.charAt(i));
}
}
}
```
login.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { //登录的按钮 if(e.getSource()==login){ requestFocus(true); //获得焦点,不用失去焦点 gamebody.resetMap(); //重置地图 gamebody.drawWall(); //重新绘制边界墙体 gamebody.createshape(); //重新产生新的地图 gamebody.setStart(false); //唤醒定时下落的线程 gamebody.score=0; //将分数置为零 repaint(); } } });解释这段代码
这段代码实现了一个按钮的监听器,当监听到按钮被点击时,会执行里面的 actionPerformed 方法。其中,判断按钮是否被点击的条件是 e.getSource()==login,即事件源必须是名为 login 的组件。在方法中,首先获取焦点,然后重置地图、绘制边界墙体、重新产生新的地图、唤醒定时下落的线程、将分数置为零,并重新绘制。这段代码可能是一个小游戏中的重新开始按钮的实现。