展开全部
效果如图


参考代码和注释如下import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.event.*;
import java.util.Date;
public class ChatRoomFrame extends JFrame implements ActionListener {
private JPanel contentPane;
private JTextField jtf1;
private JTextField jtf2;
private JTextField jtf3;
private JTextArea jta;
public static void main(String[] args) {
636f707962616964757a686964616f31333339653736EventQueue.invokeLater(new Runnable() {
public void run() {
try {
ChatRoomFrame frame = new ChatRoomFrame();//创建窗口
frame.setVisible(true);//设置窗口可见
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
*构造方法
*/
public ChatRoomFrame() {
setTitle("聊天室程序");// 设置窗口
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭窗口是退出虚拟机
setSize(450, 374);// 设置窗口大小
setLocationRelativeTo(null);// 设置窗口居中
contentPane = new JPanel();// 内容面板
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(10, 3));// 边界布局,水平间隔10,垂直3
setContentPane(contentPane);
JPanel jpNorth = new JPanel();
contentPane.add(jpNorth, BorderLayout.NORTH);
JPanel jpn1 = new JPanel();
jpNorth.add(jpn1);
JLabel jl1 = new JLabel("用户名");
jpn1.add(jl1);
jtf1 = new JTextField("pc");
jpn1.add(jtf1);
jtf1.setColumns(10);
JPanel jpn2 = new JPanel();
jpNorth.add(jpn2);
JButton jb1 = new JButton("进入聊天室");
jb1.addActionListener(this);// 给按钮添加事件响应
jpn2.add(jb1);
JButton jb2 = new JButton("离开聊天室");
jb2.addActionListener(this);// 给按钮添加事件响应
jpn2.add(jb2);
JScrollPane scrollPane = new JScrollPane();
contentPane.add(scrollPane, BorderLayout.CENTER);
jta = new JTextArea();
scrollPane.setViewportView(jta);
jta.setText("$$ "+jtf1.getText()+" "+new Date()+"上线了!");
jta.setLineWrap(true);//文本域自动换行
JPanel jpe1 = new JPanel();
contentPane.add(jpe1, BorderLayout.EAST);
jpe1.setLayout(new GridLayout(2, 1));
JLabel jl2 = new JLabel("服务器地址:");
jpe1.add(jl2);
jtf2 = new JTextField("192.168.1.188");
jpe1.add(jtf2);
jtf2.setColumns(8);
JPanel jps1 = new JPanel();
contentPane.add(jps1, BorderLayout.SOUTH);
jtf3 = new JTextField();
jps1.add(jtf3);
jtf3.setColumns(30);
JButton jb3 = new JButton("发送");
jb3.addActionListener(this);// 给按钮添加事件响应
jps1.add(jb3);
}
// 处理按钮点击事件
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();// 根据不同的命令字符串进行分别处理
if (cmd.equals("进入聊天室")) {
System.out.println("进入聊天室的代码写在这里");
}
if (cmd.equals("离开聊天室")) {
System.out.println("离开聊天室的代码写在这里");
}
if (cmd.equals("发送")) {
System.out.println("发送文字的代码写在这里");
jta.append("\r\n "+jtf1.getText()+new Date()+"\r\n");// \r\n表示换行
jta.append(" "+jtf3.getText()+"\r\n");
jtf3.setText("");
}
}
}