public void actionPerformed(ActionEvent e) { if (e.getSource() == this.clearMsgButton) { this.serverMsgPanel.msgTextArea.setText(""); } if (e.getSource() == this.serverStatusButton) { try { this.serverMsgPanel.msgTextArea.append("服务器信息:" + InetAddress.getLocalHost() + ":" + this.serverSocket.getLocalPort() + "\n"); } catch (Exception var3) { var3.printStackTrace(); } } if (e.getSource() == this.closeServerButton) { System.exit(0); } }
时间: 2024-02-14 07:19:45 浏览: 19
这段代码是用于处理服务器端的按钮事件的,其中包含了清空消息、获取服务器状态和关闭服务器三个操作。当点击清空消息按钮时,会清空服务器消息面板中的文本内容;当点击获取服务器状态按钮时,会获取本机的IP地址和端口号,并将这些信息添加到服务器消息面板中;当点击关闭服务器按钮时,会关闭服务器。这段代码中还包含了异常处理机制,当获取本机IP地址和端口号时,如果出现异常,会打印异常信息。
相关问题
@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));
}
}
}
```
public void actionPerformed(ActionEvent e) { if (e.getSource().equals(searchButton)) { int id = Integer.parseInt(searchField.getText()); SQLHelp sqlHelp = new SQLHelp(); Student student = sqlHelp.queryStudent(id); if (student != null) { idField.setText(String.valueOf(id)); nameField.setText(student.getName()); genderField.setText(student.getGender()); dobField.setText(student.getDob()); batchField.setText(String.valueOf(student.getBatch())); } else { JOptionPane.showMessageDialog(QueryFrame.this, "无此学生"); } } else if (e.getSource().equals(searchButton2)) { this.setVisible(false); GUI.GUIjiemian();中的类及方法
这段代码是一个事件监听器,用于处理查询和返回按钮的点击事件。其中包含了对应的处理逻辑。
方法:
```java
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(searchButton)) {
int id = Integer.parseInt(searchField.getText());
SQLHelp sqlHelp = new SQLHelp();
Student student = sqlHelp.queryStudent(id);
if (student != null) {
idField.setText(String.valueOf(id));
nameField.setText(student.getName());
genderField.setText(student.getGender());
dobField.setText(student.getDob());
batchField.setText(String.valueOf(student.getBatch()));
} else {
JOptionPane.showMessageDialog(QueryFrame.this, "无此学生");
}
} else if (e.getSource().equals(searchButton2)) {
this.setVisible(false);
GUI.GUIjiemian();
}
}
```
这个方法接收一个ActionEvent对象,用于处理对应的事件。如果点击的是查询按钮,将从输入框中获取学生的学号,调用SQLHelp类的queryStudent方法查询学生信息,如果学生存在,则将对应的信息显示在界面上,否则弹出提示框显示“无此学生”。
如果点击的是返回按钮,将关闭当前窗口,并打开一个名为GUIjiemian的GUI界面。这个GUI界面的具体实现需要查看GUI类的其他部分。