用java awt设计一个简易聊天室程序,在文本框中输入文字,单击 “发送”按钮,或在文木框中击回车键,文本框中的文字添加到多行文本区中(设置至行文本区的字体颜色,字体等,使它更像一个实际的聊天室)
时间: 2023-12-11 07:05:05 浏览: 33
以下是一个简单的Java AWT聊天室程序的实现:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ChatRoom extends JFrame implements ActionListener, KeyListener {
private JTextArea chatArea;
private JTextField inputField;
private JButton sendButton;
public ChatRoom() {
super("Chat Room");
// 设置窗口大小和位置
setSize(500, 500);
setLocationRelativeTo(null);
// 创建GUI组件
chatArea = new JTextArea();
chatArea.setEditable(false);
chatArea.setLineWrap(true);
chatArea.setFont(new Font("Dialog", Font.PLAIN, 14));
JScrollPane scrollPane = new JScrollPane(chatArea);
inputField = new JTextField();
inputField.addKeyListener(this);
inputField.setFont(new Font("Dialog", Font.PLAIN, 14));
sendButton = new JButton("发送");
sendButton.addActionListener(this);
// 添加组件到窗口中
JPanel panel = new JPanel(new BorderLayout());
panel.add(scrollPane, BorderLayout.CENTER);
JPanel inputPanel = new JPanel(new BorderLayout());
inputPanel.add(inputField, BorderLayout.CENTER);
inputPanel.add(sendButton, BorderLayout.EAST);
panel.add(inputPanel, BorderLayout.SOUTH);
setContentPane(panel);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == sendButton) {
sendMessage();
}
}
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
sendMessage();
}
}
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
private void sendMessage() {
String message = inputField.getText().trim();
if (!message.isEmpty()) {
chatArea.append("我: " + message + "\n");
inputField.setText("");
}
}
public static void main(String[] args) {
ChatRoom chatRoom = new ChatRoom();
chatRoom.setVisible(true);
}
}
```
在这个程序中,我们创建了一个`JFrame`窗口,并添加了一个多行文本框和一个文本框和一个发送按钮。用户输入文字后,可以单击发送按钮或按回车键将其发送到多行文本框中。我们还实现了`ActionListener`和`KeyListener`接口来处理用户的操作。
我们可以在`sendMessage()`方法中添加更多的逻辑,例如将文本发送到服务器或其他客户端,以实现真正的聊天室功能。