首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从不同的地方向swing JTextArea发送消息

,可以通过以下步骤实现:

  1. 创建一个Swing应用程序,并在界面中添加一个JTextArea组件,用于显示消息。
  2. 在不同的地方,例如按钮点击事件、定时任务、网络请求等,需要发送消息时,调用相应的方法。
  3. 在发送消息的方法中,获取JTextArea组件的实例,并使用其append()方法将消息追加到文本区域中。
  4. 如果需要在不同的线程中发送消息,确保使用SwingUtilities.invokeLater()方法将更新UI的操作放在事件调度线程中执行,以避免线程安全问题。

以下是一个示例代码,演示如何从不同的地方向swing JTextArea发送消息:

代码语言:java
复制
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class SwingTextAreaExample extends JFrame {
    private JTextArea textArea;

    public SwingTextAreaExample() {
        setTitle("Swing JTextArea Example");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new BorderLayout());

        textArea = new JTextArea();
        textArea.setEditable(false);

        JScrollPane scrollPane = new JScrollPane(textArea);
        add(scrollPane, BorderLayout.CENTER);

        JButton button = new JButton("发送消息");
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                sendMessage("按钮点击事件 - 发送消息");
            }
        });
        add(button, BorderLayout.SOUTH);

        setSize(400, 300);
        setVisible(true);
    }

    private void sendMessage(String message) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                textArea.append(message + "\n");
            }
        });
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new SwingTextAreaExample();
            }
        });
    }
}

在上述示例中,创建了一个Swing应用程序窗口,包含一个JTextArea组件和一个发送消息的按钮。当按钮被点击时,会调用sendMessage()方法向JTextArea发送消息。sendMessage()方法使用SwingUtilities.invokeLater()确保更新UI的操作在事件调度线程中执行。

这个示例中没有提及具体的云计算相关内容,因此不需要给出腾讯云相关产品和产品介绍链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

用JavaSocket编程开发聊天室,附超详细注释

服务器端相当于一个转发器功能,所有客户端消息都先发给服务器端,由服务器端再转发给对应客户端。 不同类型消息格式不同,服务器端根据消息格式来判断事件类型,再执行相应功能。...其次,每一个服务器端用户随时都有可能和服务器就发送消息,因此每新增一个用户就需要为该用户建立一个聊天线程。 服务器端还需要具备踢人、群发消息发送消息功能。...这些功能本质其实就是发送对应格式消息消息格式见下文),只是发送消息格式不同罢了。...客户端 客户端需要实现主要功能是群发消息和私发消息,并且通过收到消息格式判断服务器发送过来消息,再进行响应代码。...发送消息操作面板 jta.setEditable(false);//消息显示框是不能编辑 jTextArea.setEditable(false);

1.7K20

UDP协议支持广播发送数据_tcp协议建立连接过程

UDP(即用户数据报协议)它是除了TCP协议以外另一种网络信息传输形式,我们知道TCP和UDP协议不同点在于: TCP协议是可靠而非安全网络协议,它可以保证数据在从一端传输至另一端时候可以准确送达...UDP协议安全而非可靠网络协议,基于UDP信息传输快,但是不提供可靠保证, 使用UDP协议进行数据传输时,用户无法知道数据能否到达主机,也不能确保到达目的顺序是否和发送顺序相同,它就像是像一个广播站一样...,将消息通过喇叭广播出去,然后人们可以听到这条消息,但是谁收了消息,谁没有收到消息,广播员是不知道。...; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea...startTextArea = new JTextArea(10,10); //定义开始接收后显示文本框 JTextArea stopTestArea = new JTextArea(10,10

1.6K10

Java---基于TCP协议相互即时通讯小程序

(2)退出(注销): (3)发送消息 ※※发送通讯内容之后,对方如何知道是干什么,通过消息协议来实现: 客户端向服务器发消息格式设计: 命令关键字@#接收方@#消息内容@#发送方 1)连接:...userName —-握手线程serverSocket专门接收该消息,其它由服务器新开与客户进行通讯socket来接收 2)退出:exit@#全部@#null@#userName 3)发送...@#发送方@#消息内容 登录: 1) msg @#server @# 用户[userName]登录了 (给客户端显示用) 2) cmdAdd@#server @# userName (给客户端维护在线用户列表用...) 发送: msg @#消息发送者( msgs[3] ) @# 消息内容 (msgs[2]) 服务器端源代码: package cn.hncu; import java.awt.BorderLayout...”通知给所有其他已经在线的人 * * @param userName */ // 技术思路:池中依次把每个socket(代表每个在线用户)取出,向它发送userName

1.6K10

Java利用UDP协议建立广播组通信【附通信源码】

UDP(即用户数据报协议)它是除了TCP协议以外另一种网络信息传输形式,我们知道TCP和UDP协议不同点在于: TCP协议是可靠而非安全网络协议,它可以保证数据在从一端传输至另一端时候可以准确送达...UDP协议安全而非可靠网络协议,基于UDP信息传输快,但是不提供可靠保证, 使用UDP协议进行数据传输时,用户无法知道数据能否到达主机,也不能确保到达目的顺序是否和发送顺序相同,它就像是像一个广播站一样...,将消息通过喇叭广播出去,然后人们可以听到这条消息,但是谁收了消息,谁没有收到消息,广播员是不知道。...; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea...startTextArea = new JTextArea(10,10); //定义开始接收后显示文本框 JTextArea stopTestArea = new JTextArea(10,10

1.5K30

Java入门(12)-- Swing程序设计

标签可以显示一行只读文本、一个图像或带图像文本,它并不能产生任何类型事件,只是简单显示文本和图片,可以指定标签上文本对齐方式。...1. gridx和gridy属性 设置组件起始点所在单元格索引值。gridx设置水平方向索引值,gridy设置垂直方向索引值。...通常将显示区域方向上划分为9个方位,分别为北方(NORTH)、东北(NORTHEAST)、东方(EAST)、东南(SOUTHEAST)、南方(SOUTH)、西南(SOUTHWEST)、西方(WEST)...可以利用4个静态常量设置该属性: NONE:默认值,不调整组件大小; HORIZONTAL:只调整组件水平方向大小; VERTICAL:只调整组件垂直方向大小; BOTH:同时调整组件宽度和高度至填满显示区域...常用构造方法: public JTextArea() public JTextArea(String text) public JTextArea(int rows, int columns) public

5.3K10

Java入门(18)-- 网络通信

计算机网络实现了多台计算机间互联,使得它们彼此之间能够进行数据交流。网络应用程序就是在已连接不同计算机上运行程序,这些程序借助于网络协议,相互之间可以交换数据。...Internet依靠TCP/IP协议,在全球范围内实现了不同硬件结构、不同操作系统、不同网络系统间互联。...通常是使用了一个被其他程序占用端口号,ServerSocket绑定没有成功。 18.2.3 TCP网络程序 在网络编程中如果只要求客户机向服务器发送消息,不要求服务器向客户机发送消息,称为单向通信。...18.3 UDP程序设计基础 用户数据报协议(UDP)是网络信息传输另一种形式,使用UDP传递数据时,用户无法知道数据能否正确到达主机,也不能确定到达目的顺序是否和发送顺序相同。...基于UDP通信基本模式如下: 将数据打包(称为数据包),然后将数据包发往目的; 接收别人发来数据包,然后查看数据包。 发送数据包步骤: 1.

64220

java课程设计-多人聊天工具(socket+多线程)

运行结果 课设要求 多人聊天工具 服务器要求1:能够看到所有在线用户(25%) 服务器要求2:能够强制用户下线(25%) 客户端要求1:能够看到所有在线用户(25%) 客户端要求2:能够向某个用户发送消息...3.客户端能够看到所有在线用户 客户端继承了JFrame,实现可视化,添加了一个布局在窗口右边JPanel,把服务端接收到用户名列表中信息放进去。...4.客户端要求能够向某个用户发送消息 客户端私发消息通过在消息后面加入-和目标用户名,传给服务端,服务端截取目标用户名,在用户名列表中判断是否存在此人,有则判断是否是私发,私发则向目标用户发送消息,没有则向全部用户发送消息...JTextArea show_area = new JTextArea(); //用户名显示区域 JTextArea show_user = new JTextArea(10, 10);...try { if (is_stop) { show_area.append("你已被踢出,不能发送消息

2.1K30

MYSQL数据库文档生成器

一、概述     平常会遇到编写文档类工作,尤其是数据库,要把每张表详细字段列出来,手写实在费劲,网上找了很多,都没有那种直接GUI输入参数,一键生成,所以自己花时间做了一个,功能很简陋,但是基本需求可以实现...; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField...窗口左边1/2处 urlTextLabel.setBounds(100, 50, whidth - 110, 25);// (起始点x,起始点y,宽w,高h) // 宽度始终是窗口...; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField...窗口左边1/2处 urlTextLabel.setBounds(100, 50, whidth - 110, 25);// (起始点x,起始点y,宽w,高h) // 宽度始终是窗口

4.4K20

java swing一篇轻松学习(高考后可以自学)

前言: 本文会将swing0到jdbc操作全部讲完,希望能对大家有所帮助。...() 返回下拉列表框中项数 Object getItemAt(int index) 获取指定索引列表项,索引 0 开始 int getSelectedIndex() 获取当前选择索引 Object...工具栏JToolBar 构造方法 说明 JToolBar() 创建新工具栏,默认方向为 HORIZONTAL JToolBar(int orientation) 创建具有指定 orientation...c) 返回指定组件索引 getMargin() 返回工具栏边框和它按钮之间空白 getOrientation() 返回工具栏的当前方向 isFloatable() 获取 floatable 属性...setMargin(Insets m) 设置工具栏边框和它按钮之间空白 setOrientation(int o) 设置工具栏方向 setRollover(boolean rollover) 设置此工具栏

9.3K10
领券