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 22:19:45 浏览: 121
这段代码是用于处理服务器端的按钮事件的,其中包含了清空消息、获取服务器状态和关闭服务器三个操作。当点击清空消息按钮时,会清空服务器消息面板中的文本内容;当点击获取服务器状态按钮时,会获取本机的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));
}
}
}
```
package com.java21days; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ActionEvent_1 extends JFrame implements ActionListener{ JPanel jp1; // 面 板 JButton jb1,jb2,jb3,jb4;// 按 钮 JTextArea jta1;// 文 本 区 public static void main(String[] args) { ActionEvent_1 a=new ActionEvent_1(); } ActionEvent_1() { jp1=new JPanel(); jb1=new JButton("W"); jb1.addActionListener(this); jb2=new JButton("A"); jb2.addActionListener(this); jb3=new JButton("S"); jb3.addActionListener(this); jb4=new JButton("D"); jb4.addActionListener(this); jta1=new JTextArea(); jp1.add(jb1); jp1.add(jb2); jp1.add(jb3); jp1.add(jb4); this.add(jp1,BorderLayout.NORTH); this.add(jta1); this.setTitle("我的小程序"); this.setSize(400, 300); this.setLocation(100, 100); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource()==jb1) jta1.setText("W"); else if(e.getSource()==jb2) jta1.setText("A"); else if(e.getSource()==jb3) jta1.setText("S"); else if(e.getSource()==jb4) jta1.setText("D"); } }
这段代码实现了一个简单的窗口程序,包含了一个面板(jp1)、四个按钮(jb1、jb2、jb3、jb4)和一个文本区(jta1)。
其中,实现了ActionListener接口,以便处理按钮的事件。当一个按钮被点击时,actionPerformed方法会被调用,根据点击的按钮来设置文本区的文本。
这个程序的主要功能是:当用户按下W/A/S/D键时,文本区会显示相应的字母。
阅读全文