java swing怎么运行_用java swing 如何实现??

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:32   2588   0

展开全部

效果如图

39e0ccd771b4a6b58d8ff0f18c90e0da.png

a3bd16e3fad9aaa783bfb68842baa981.png

参考代码和注释如下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("");

}

}

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP