练习57
来源:互联网 发布:涤纶低弹网络丝荣盛 编辑:程序博客网 时间:2024/04/28 23:04
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class ChatGUI extends JFrame implements ActionListener {
Container container;
JButton send; // 发送按钮
JTextArea chatContent; // 聊天内容区
JTextField sentence; // 聊天信息栏
ChatGUI() {
super.setTitle("聊天窗口");// 设置窗口标题
this.setSize(400, 300); // 设置窗口大小
container = this.getContentPane(); // 获得主窗口的内容面板
container.setLayout(new BorderLayout()); // 设置布局方式为BorderLayout
JScrollPane centerPanel = new JScrollPane(); // 创建用于存放聊天记录的滚动面板
chatContent = new JTextArea(); // 创建存放聊天内容的多行文本输入区对象
centerPanel.setViewportView(chatContent); // 将文本区放入滚动面板
// 将滚动面板放到主窗口内容面板中央
container.add(centerPanel, BorderLayout.CENTER);
chatContent.setEditable(false); // 将文本区置为不可编辑状态
// 创建底部面板对象,存放聊天标签、聊天栏、发送按钮
JPanel bottomPanel = new JPanel();
sentence = new JTextFie
ld(20); // 创建文本输入行对象,存放每次的聊天内容
send = new JButton("发送"); // 创建按钮对象
bottomPanel.add(new JLabel("聊天信息")); // 将标签添加到底部面板
bottomPanel.add(sentence); // 把聊天内容栏添加到底部面板上
bottomPanel.add(send); // 把发送按钮添加到底部面板上
container.add(bottomPanel, BorderLayout.SOUTH);// 将底部面板放在主窗口的底部
send.addActionListener(this); // 注册发送按钮的动作事件
sentence.addActionListener(this); // 注册聊天栏的动作事件
this.setVisible(true); // 显示主窗口
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭窗口时退出系统
}
public void actionPerformed(ActionEvent e) {
String str = sentence.getText(); // 获取聊天栏里的聊天信息
if (str != null && !str.equals("")) // 如果聊天内容不为空,则发送信息
chatContent.append("本人: " + str + "\n");// 将本人发送的聊天信息追加到聊天内容区
else
chatContent.append("聊天信息不能为空\n");
sentence.setText(""); // 清空聊天栏里的内容
}
public static void main(String[] arg) {
new ChatGUI();
}
}
- 练习57
- 练习57
- 【SICP练习】57 练习2.27
- leetCode练习(57)
- 练习
- “++”“--”练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 练习
- 深入理解Java5的反射与注解机制
- Hadoop核心架构HDFS+MapReduce+Hbase+Hive内部机理详解
- USACO section 1.3 Prime Cryptarithm
- Chatbot APIs
- service temp
- 练习57
- Spring 定时任务的使用
- Android 第三方库前100
- 两个数比较大小
- android kotlin类和对象(一)-类和继承
- C++信号量Semaphore和MFC中的CSemaphore类使用
- 练习58
- JS压缩图片(canvas),返回base64码
- Azure SQL性能调优实践