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

Java利用多线程和Socket制作GUI界面的在线聊天室

服务器端和用户端主类都用到了内部类,因为毕竟容易获取主类变量值,具体类和方法介绍就不仔细讲了,代码里面都有注释,不懂看看注释,肯定不是因为懒。...,上层放置连接区,下层放置消息区, 中间是消息面板,左边是room列表,右边是当前room用户列表*...vertical, boolean isSys) { StyledDocument document = textPane.getStyledDocument(); /*获取textpane文本...,上层放置连接区,下层放置消息区,中间是消息面板,左边是系统消息,右边是当前room用户列表*/ JPanel headpanel = new JPanel(); /*上层panel...ID和内容,搜寻当前客户端用户对应传来用户ID私聊窗口,将内容写进私聊窗口文本域 * @Return * @Since 2020/6/6 */ public

7.7K84

AWTContainer容器

最后通过设置窗口可见,使窗口显示屏幕上。 面板容器(Panel) 面板是一种特殊容器,没有边框,不能独立存在和显示,必须作为组件添加到其他容器:与窗体容器特性不同。...panel.add(new TextField("测试文本"));:这是往Panel容器添加一个TextField组件,用于显示和输入文本。...scrollPane.add(new TextField("测试文本"));:这是往ScrollPane容器添加一个TextField组件,用于显示和输入文本。...程序明明向 ScrollPane 容器添加了 一个文本框和一个按钮,但只能看到 一个按钮,看不到文本框 ,这是为什么 呢?...这是因为ScrollPane 使用 BorderLayout 布局管理器缘故, BorderLayout 导致该容器只有一个组件被显示出来 。

9110
您找到你想要的搜索结果了吗?
是的
没有找到

JAVA入门学习十二

通常接口中有多个方法, 程序不一定所有的都用到, 但又必须重写这很繁琐. 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要方法即可....适配器类需要定义成抽象,因为创建该类对象调用空方法是没有意义 目的就是为了简化程序员操作, 定义监听器时继承适配器, 只重写需要方法就可以....//类 public class TextField extends TextComponent //构造方法 TextField(String text, int columns) //构造一个与指定要显示指定文本初始化文本字段...//继承java.awt.TextComponent获取文本 String getText() //返回由该文本组件提交文本。默认情况下,这是一个空字符串。...7.颜色字体 描述:颜色是Color类字体是Font类; Color类用于封装颜色默认sRGB色彩空间或颜色任意颜色空间 ColorSpace鉴定,并且可以采用alpha指定显示透明度 public

1K10

JAVA入门学习十二

通常接口中有多个方法, 程序不一定所有的都用到, 但又必须重写这很繁琐. 适配器简化了这些操作, 我们定义监听器时只要继承适配器, 然后重写需要方法即可....适配器类需要定义成抽象,因为创建该类对象调用空方法是没有意义 目的就是为了简化程序员操作, 定义监听器时继承适配器, 只重写需要方法就可以....//类 public class TextField extends TextComponent //构造方法 TextField(String text, int columns) //构造一个与指定要显示指定文本初始化文本字段...//继承java.awt.TextComponent获取文本 String getText() //返回由该文本组件提交文本。默认情况下,这是一个空字符串。...7.颜色字体 描述:颜色是Color类字体是Font类; Color类用于封装颜色默认sRGB色彩空间或颜色任意颜色空间 ColorSpace鉴定,并且可以采用alpha指定显示透明度 public

1.1K10

java-GUI编程之布局类型介绍

AWT继承体系 Component:代表一个能以图形化方式显示出来,并可与用户交互对象,例如 Button 代表一个按钮,TextField 代表 一个文本框等; MenuComponent:则代表图形界面的菜单组件...一个文本框和一个按钮,但只能看到 一个按钮,看不到文本框 ,这是为什么 呢?...这是因为ScrollPane 使用 BorderLayout 布局管理器缘故, BorderLayout 导致该容器只有一个组件被显示出来 。...如果要让程序不同操作系统下,都有相同使用体验,那么手动设置组件位置和大小,无疑是一种灾难,因为有太多组件,需要分别设置不同操作系统下大小和位置。...其实很简单,我们只需要在原有的组件需要间隔地方,添加间隔即可,每个间隔可以是一个组件,只不过该组件没有内容,仅仅起到一种分隔作用。

1.7K10

Java图形界面编程-GUI

欢迎到我简书查看我文集 前言: GUI是图形用户界面,Java,图形用户界面我们用GUI表示,GUI完整英文为: Graphical User Interface(图形用户接口), 所谓图形用户界面就是以图形方式来显示你计算机操作界面...JavaGUI提供对象 java.awt 和 javax.swing 两个包 早年中, Java.awt为抽象窗口工具包, 英文为 Abstract Window ToolKit, 需要调用本地系统方法来实现功能需求...有自己显示效果, 显示自己形状, 平台要求低了, 轻量级和体统嵌入比较浅....继承关系 Component .png Button按钮,Label标签,Checkbox复选框,TextComponent文本组件,TextArea文本区域,TextField文本框....TextField tf = new TextField(40);                 //将组件添加到窗体

2.1K20

java swing开发窗体程序开发(一)GUI编程

大家好,又见面是你们朋友全栈君。...这些组件都继承至JComponent 常用有 JTextField:单行文本输入 JTextArea:多行文本输入 JButton:按钮 JLabel:标签,用于显示提示信息 JCheckBox...JavaSwing总共就定义5层,从低到高,分别是 DEFAULT_LAYER,PALETTE_LAYER,MODAL_LAYER,POPUP_LAYER,DRAG_LAYER 同一位置,高层会覆盖显示底层...这些组件层叠放在一起,只有最前面可以显示。 顺序并不是栈,而是队列,即第一个添加进去组件,显示最前面,后面的一次往后排。...且显示出来组件将会占据该容器所有空间 使用该种布局容器添加组件时 add(String s,Component c) s只是一个代号,方便以后显示这个组件时找到 cardlayout对象

2.5K30

【Java AWT 图形界面编程】LayoutManager 布局管理器总结 ( FlowLayout 布局 | BorderLayout 布局 | BoxLayout 布局 )

文本框 和 Button 按钮 , 但是显示时候效果如下 : 只显示一个按钮 , 这是由于 ScrollPan 默认 LayoutManager 布局管理器 导致 ; 二、布局管理器提高程序适配性...程序不同平台适配问题 , 如 : Windows 设置 100 px 效果 , 与 Linux 设置 200 px 效果正好合适 ; 如果手动设置组件 宽高 , 位置 等精确像素值...* * 行和cols一个(不是两个)可以 * 为零,这意味着任何数量物体都可以放置 * 行或列。...new Panel(); // 该文本框可以存放 30 个字符 TextField textField = new TextField(30); panel.add...---- 为了 方便使用 BoxLayout 布局 , Swing 中提供 Box 容器 ; Box 容器 默认 布局管理器 就是 BoxLayout ; 通过 Box 容器构造函数传入不同参数

4.1K20

11 - JavaSE之GUI

GUI 各种元素(如:窗口,按钮, 文本框等)由 Java 类来实现。 使用 AWT 所涉及类一般 java.awt 包及其子包。...(注意 Frame还继承父类 Window 成员方法,一些常用方法 Window 里面。)...---- 布局管理器 Java 语言中,提供布局管理器类对象可以管理 Component Container 布局,不必直接设置 Component 位置和大小。...BorderLayout Panel 无法单独显示,必须添加到某个容器,Panel 缺省布局管理器为 FlowLayout....实际项目中看到一个很奇怪现象,Java可以直接new一个接口,然后new里面粗暴加入实现代码。就像下面这样。那么问题来了,new出来对象没有实际类作为载体,这不是很奇怪吗?

1.9K50

TextField和Graphics类

事件监听 TextField对象可能发生Action(光标文本框内敲回车)事件。...对象actionPerformed方法方法可以获取该对象信息,并做相应处理 import java.awt.*; import java.awt.event.*; public class TFActionEvent...} }  这段小程序最重要部分在于,需要将TFFrame类tf相关信息传到TFActionListener,这样才能使用tf对象一些方法,比方说获取其文本内容,修改其文本内容等等,但是...g.setColor(Color.green); g.fillRect(80,80,40,40); g.setColor(c); } }  主函数没有调用...paint方法,但是其实仔细看上面的说明就会知道,每次重画时候都会自动调用paint方法,什么时候会重画,比方说先把这个窗口隐藏,然后再显示这个窗口,或者创建这个窗口时候,都会重画。

87420

【Java AWT 图形界面编程】Container 容器总结

图形界面风格 , 都与 Java 程序运行平台相关 , Windows 系统运行 , 显示是 Windows 界面的风格 , Linux 系统运行 , 显示是 Linux 界面风格..., 创建按钮 Button button = new Button("测试按钮"); , 按钮文本为 " 测试按钮 " , 但是 窗口中显示时 , 显示乱码 : 这是因为 Java 程序代码编码方式是...UTF-8 格式编码 , Windows 系统使用是 GBK 格式编码 ; 点击 IntelliJ IDEA 执行选项 " Edit Configurations… " 选项 ,...; 八、ScrollPane 可滚动容器示例 ---- ScrollPane 可滚动容器 无法 屏幕独立存在 , 必须 依赖于 Frame 窗口存在 ; 如果要 显示 ScrollPane 可滚动容器...按钮组件 , 文本组件被覆盖按钮组件后面 , 这与布局管理器有关 ;

82610

GUI(对话框Dialog)

对话框不能单独存在,依赖于窗体,有显示标题,有模式 获取Dialog对象,new出来,构造参数:Frame对象,String标题,模式 窗体内部内容,Label对象,Button对象,调用Dialog...对象add()方法,把这两个添加进去 Dialog也是一个普通窗体,需要设置尺寸和位置 这个Dialog窗体不用加入到Frame窗体,只需要设置是否显示就可以 对话框叉号,给对话框添加窗体事件...调用Dialog对象addWindowListener()方法,设置,重写windowClosing()方法,方法里面调用Dialog对象setVisible(flase),隐藏掉 显示信息 调用Label...对象setText()方法,设置文本 import java.awt.Button; import java.awt.Dialog; import java.awt.FlowLayout; import...()); tf = new TextField(20); button = new Button("转到"); ta = new TextArea(30

70020

HarmonyOS实战——TextField文本输入框组件基本使用

TextField案例——获取文本输入框内容并进行Toast提示 通过TextField获取文本输入框内容并进行Toast提示 新建项目:TextFieldApplication ability_main...,这还是 TextField 文本输入框组件,只不过是背景色没有设置,让它跟布局颜色一致,看不到背景而已 [在这里插入图片描述] 3.3 气泡设置 当用鼠标长按选中输入内容后,就会选中内容,前面的光标和后面的光标...、右边,以及没有选中情况下气泡 [在这里插入图片描述] 气泡图片、颜色都是可以自定义 以下用到图片可自取:https://www.aliyundrive.com/s/wT22d1Vb1BV [在这里插入图片描述...TextField案例——长按查看密码明文 一些APP,登录界面密码输入框那里有个小眼睛,按住小眼睛后就可以看到密码明文展示,松开小眼睛又恢复到密文状态 [在这里插入图片描述] [在这里插入图片描述...组件默认是左边放置,加上 ohos:layout_alignment="right"就是右边放置,同时也给个ohos:right_margin="20vp"和右边屏幕有些距离。

1K20

六天完成一个简单iOS App - 第二天

快速登录按钮布局 首先快速登录方便两条线都是图片,只需要简单设置frame即可,下面的三个快速登录明显是按钮,但是我们知道,UIButton默认是UIImage左边,titleLabel右边,...关于三个button添加约束方法:可以先设置中间按钮约束,然后约束三个按钮相互之间间距为0。左边按钮与屏幕左边间距为0,右边按钮与屏幕右边为0,高度相同。最后约束三个按钮平分屏幕宽度。...账号密码输入框登录按钮布局 这部分布局也很简单,这里图片中提供textfield背景图片,所以这里我们先用UIImageView将背景图片显示,然后在在图片上添加一个透明textfield,所以...,然后设置为@" ",这时占位文字颜色也会设置,然后将占位文字内容修改回为空,此时即使我们只设置占位文字颜色,没有设置占位文字,打印占位文字为null // NSString *oldplaceholder...是xx_cc,一只长大很久但还没有二够家伙。

2K50
领券