简单列表框 使用JList或JComboBox实现简单列表框的步骤: 创建JList或JComboBox对象 JList(final E[] listData):创建JList对象,把listData数组中的每项内容转换成一个列表项展示...java.util.Vector; public class ListTest { JFrame mainWin = new JFrame("列表框测试"); String[] books...在使用JList和JComboBox时,除了可以使用jdk提供的Model实现类,程序员自己也可以根据需求,自己定义Model的实现类,实现对应的方法使用。...如果需要创建一个可以增加、删除列表项的 JList 对象,则应该在创建 JLi st 时显式使用 DefaultListModel作为构造参数 。...如果希望列表项是更复杂 的组件,例如,希望像 QQ 程序那样每个列表项既有图标,此时需要使用ListCellRenderer接口的实现类对象,自定义每个条目组件的渲染过程: public interface
大家好,又见面了,我是你们的朋友全栈君。 用JavaSocket编程开发聊天室 大二下册的JavaWeb课程设计,使用的是eclipse。...; import java.util.ArrayList; class server extends JFrame implements Runnable, ListSelectionListener...DefaultListModel(); private JList userList = new JList(dl);//显示对象列表并且允许用户选择一个或多个项的组件...里的用户登陆信息,为了防止后面登陆的用户无法更新有前面用户的好友列表 ListModel model = userList.getModel();//获取...+ "\n"); } }else if(strs[0].equals("USERS")){ //USER消息,为新建立的客户端更新好友列表
一.前言 首先应该明白,用java创建一个窗体程序包括下面几步: 1.实例化JFrame对象,也就是创建一个窗体。 2.获取一个容器。 3.创建组件。 4.向容器添加组件。...应该有这样的概念,Swing组件的窗体通常与组件和容器相关,所以在JFrame对象创建完成后,需要调用方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器,通常,这个容器用来包含和显示组件。...//实例化JFrame对象,就是创建一个窗体 JFrame jf =new JFrame("花狗");//设置窗体标题 //获取容器 Container c =jf.getContentPane...可以看到创建的按钮涉及整个窗体,这是为什么呢,窗体默认使用边界布局器,创建的组件会覆盖整个窗体,我们只需要取消边界布局,改用绝对布局: jf.setLayout(null); //告诉窗体取消边界布局...JList jr =new JList(); ? 和下拉列表框一样空白,没有什么实际价值。 2.构造一个JList,用于显示指定向量中的元素。
2.2 解决方法 在这个例子中,我用了javax.swing.JList模拟程序的运行。 javax.swing.JList有一个setSelectedIndex的方法,能高亮显示指定的行。... codeList = new JList(BUBBLE_SOURCE_CODE); 3.2 运行速度设置 点击菜单栏Set下的Speed可以设置程序执行的速度。...排序的主要逻辑主要写在TimeAction中, 该类主要通过java.swing.JList列表的选中的索引的改变,从而决定左侧排序面板的变化,设置不同的颜色。...; import java.awt.event.ActionListener; import java.io.Serializable; import java.util.ArrayList; import...java.util.List; import java.util.Random; import javax.swing.JList; import javax.swing.JPanel; import
早期Mac GUI GUI需要操作系统和硬件的支持。因此,GUI编程往往要处理移植性的问题。Java的GUI编程有相对比较好的可移植性。...此外,整个图像外有一个方框,用来表明可绘图的范围,所有上面提到的元素都依附于该方框。 另一方面,上述的对象有许多重复使用的图形元素(component)。比如把手是一个圆,房子和门由直线构成。...相同的图形元素可以归为一类(class)。我们可以重复使用直线类来生成(不同性质的)直线,并组合到不同的对象中。 这是用面向对象的方式来理解一个图形。对象是描述图形的自然方式。...匿名类是Java的一种嵌套类,它是在使用new创建对象时,使用一个{}来直接包含类的定义。在匿名类定义中,我们不需要说明类名。...图形树 在程序中,我们首先创建了JFrame对象。JFrame是top-level container,也就是图形树的根。JFrame默认包含有Content Pane。
图标可以用Java支持的图片文件类型进行创建,也可以使用java.awt.Graphics类提供的功能方法来创建。 1....ImageIcon类常用的构造方法: public ImageIcon():创建一个通用的ImageIcon对象,当真正需要设置图片时再使用ImageIcon对象调用setImage(Image image...,并使用该对象调用add()方法添加单选按钮。...12.7.1 下拉列表框组件 Swing中的下拉列表框使用JComboBox类对象表示,它是javax.swing.JComponent类的子类,常用的构造方法有: public JComboBox(...Swing中使用JList类对象来表示列表框,常用的构造方法有: public void JList() public void JList(Object[] listData) public void
setDefaultLookAndFeelDecorated (boolean defaultLookAndFeelDecorated) 设置 JFrame 窗口使用的 Windows 外观(如边框、...main(String[] args) { new Action8(); } } 下拉JComboBox: 方法名称 说明 void addItem(Object anObject) 将指定的对象作为选项添加到下拉列表框中...void insertItemAt(Object anObject,int index) 在下拉列表框中的指定索引处插入项 void removeltem(0bject anObject) 在下拉列表框中删除指定的对象项...void removeItemAt(int anlndex) 在下拉列表框中删除指定位置的对象项 void removeAllItems() 从下拉列表框中删除所有项 int getItemCount...JList package com.item.swings; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension
文章目录 java的容器 数组 Collection 实例 java的容器 容器中可以保含多个对象,每个对象称为容器的一个元素.容器是用对象封装的数据结构....集合中不允许有等值的元素,集合的元素没有顺序 map是键值对结合.map中的每个元素是一个键值对,即一个键值对,即一个键和他对应的对象值....使用put()方法来添加元素,用get()方法来获得元素. keyset()将所有的键转化为set values()将所有的值转化list java的参数和局部变量只能是基本类型的变量,或者对象的引用(...reference).因此,在栈中的,只保存有基本类型的变量和对象引用....() { JFrame frame = new JFrame("HelloWorld"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE
Swing概述 实际使用 Java 开发图形界面程序时 ,很少使用 AWT 组件,绝大部分时候都是用 Swing 组件开发的 。...当模型发生改变时,它会通知所有依赖它的视图,视图会根据模型数据来更新自己。Swing使用UI代理来包装视图和控制器, 还有一个模型对象来维护该组件的状态。...例如,按钮JButton有一个维护其状态信息的模型ButtonModel对象 。 Swing组件的模型是自动设置的,因此一般都使用JButton,而无须关心ButtonModel对象。...2.更新JFrame的风格时,调用了 SwingUtilities.updateComponentTreeUI(f.getContentPane());这是因为如果直接更新 JFrame 本身 ,将会导致...JFrame 也被更新, JFrame 是一个特殊的容器 , JFrame 依然部分依赖于本地平台的图形组件 。
这个小软件只是为了更好的说明和了解设计模块而做的。 Java 程序设计–包结构 Java程序设计的系统体系结构很大一部分都体现在包结构上 大家看看我的这个小软件的分层: ?...3、模块内部的技术实现一般由:表现层、逻辑层、数据层等构成。 对于许多类都要使用的公共模块或公共类,可以再独立建立一个包,取名common或base,把这些公共类都放在其中。...设计与实现的常用方式、DAO的基本功能 ★ 设计的时候:从大到小 先把一个大问题分解成一系列的小问题。...下面的为那个小软件实现这些设计模式的简单汇总: (含分层思想,值对象,工厂方法,Dao组件,面向接口编程) main方法类: UserClient : package cn.hncu.app;...import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.ArrayList; import
list界面有2个list列表,一个是进货列表,一个是进货明细列表。 这2个表示有联系的!选中进货列表的某一行时,需要在另外一个列表中显示这个进货的明细!...后期会对列表一的显示改一下的,时间会改成**年月日 :: (取系统时间显示!) 进货人不会再只显示编号。会直接显示名字的!...=-1){ return 1; } } return -1; } } 注意一个问题: 要使用对象流读取文件...idqm); } 进货明细的实现类:InDetailDaoSerImpl package cn.hncu.bookStore.in.dao.impl; import java.util.ArrayList...还有list界面的那个显示问题。 下一个系列会解决的!
: on @# JList.getSelectedValue() @# tfdMsg.getText() @# tfdUserName.getText() 服务器向客户端发的消息格式设计: 命令关键字...@#发送方@#消息内容 登录: 1) msg @#server @# 用户[userName]登录了 (给客户端显示用的) 2) cmdAdd@#server @# userName (给客户端维护在线用户列表用的...) 退出: 1) msg @#server @# 用户[userName]退出了 (给客户端显示用的) 2) cmdRed@#server @# userName (给客户端维护在线用户列表用的...import java.util.Scanner; import javax.swing.DefaultListModel; import javax.swing.JFrame; import javax.swing.JList...; public ServerForm() { JPanel p = new JPanel(new BorderLayout()); // 最右边的用户在线列表
环境与工具: 系统环境:win10 开发工具:Eclipse IDE for Java Developers - 2020-09 数据库:MySQL5.6 学习目标: 一般大一结束的时候需要做一个类似一下内容的...---- 1、项目创建 使用eclipse直接创建一个java的空项目即可,唯一要注意的就是创建【java】的时候不是点击【class】而是创建【JFrame】,通过【JFrame】才能使用设计工具【Design...2、绝对位置布局Absolute layout 使用这个方式方便拖拽,很方便: 3、工具栏简述: 4、常用控件简述 1、顶层容器:JFrame(窗体),JDialog(对话窗) 2...JList 列表 JTable 表格 画的有些乱,但是基本上一眼就能看出来是啥: 表格JTable: JPanel设置上下布局,JScrollPane设置,这样才能显示table的标题列 添加一些测试数据...; import java.awt.EventQueue; import java.util.ArrayList; import java.util.Vector; import javax.swing.JFrame
Java 常用 api 使用。 … 功能清单简单说明: 1.客户端登陆功能 可以启动客户端进行登录,客户端登陆只需要输入用户名和服务端ip地址即可。 2.在线人数实时更新。...,然后提取当前在线的全部的用户名称和当前登陆的用户名称发送给全部在线用户更新自己的在线人数列表。...服务端接收群聊消息 目标 在上节实现了接收客户端的登陆消息,然后提取当前在线的全部的用户名称和当前登陆的用户名称发送给全部在线用户更新自己的在线人数列表。...因为客户端可能随时会接收到服务端那边转发过来的各种即时消息信息。 客户端登陆完成,服务端收到登陆的用户名后,会立即发来最新的用户列表给客户端更新。...,会响应一个在线列表用户回来给客户端更新在线人数!
文本框) JavaSwing_2.7: JPasswordField(密码框) JavaSwing_2.8: JTextArea(文本区域) JavaSwing_2.9: JComboBox(下拉列表框...) JavaSwing_2.10: JList(列表框) JavaSwing_2.11: JProgressBar(进度条) JavaSwing_2.12: JSlider(滑块) 3 面板 JavaSwing...JSplitPane(分隔面板) JavaSwing_3.4: JTabbedPane(选项卡面板) JavaSwing_3.5: JLayeredPane(层级面板) 4 其他组件 JavaSwing_4.1: JFrame...绘图: 使用Graphics类绘制线段、矩形、椭圆/圆弧/扇形、图片、文本 Java图片操作 — 图片的读取、绘制、缩放、裁剪、保存 Java代码截屏:使用 Java 代码截取电脑屏幕并保存 Java...模拟鼠标键盘输入事件 — Robot 类 Java操作桌面应用 — Desktop 类 Java操作系统剪贴板(Clipboard)实现复制和粘贴 7 更多操作 如何在Swing组件中使用HTML
该事件被传递给每一个FocusListener或FocusAdapter注册,以接收使用组件的此类事件对象addFocusListener方法。...对处理焦点事件感兴趣的类 要么实现此接口(以及它包含的所有方法) 要么扩展抽象FocusAdapter类(仅覆盖感兴趣的方法) 然后,使用组件的addFocusListener方法向组件注册从该类创建的侦听器对象...使用扩展的类创建一个侦听器对象,然后使用组件的 addFocusListener 方法向组件注册该监听器。...java.awt.event.*; import javax.swing.*; public class FocusEventDemo extends JFrame implements...该演示可以使用setFocusable(false)从焦点循环中真正删除该文本区域,但这将产生不幸的后果,使使用辅助技术的人员无法使用该组件。 再次按Tab键。焦点从列表移回到文本字段。
教程总目录: Java Swing 图形界面开发(目录) 1. Swing简介 Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。...Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。 Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行。...2.1 顶层容器 顶层容器属于窗口类组件,可以独立显示,一个图形界面至少需要一个窗口,例如: # 组件 描述 1 JFrame 一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器...6 JTextField 文本框 7 JPasswordField 密码框 8 JTextArea 文本区域 9 JComboBox 下拉列表框 10 JList 列表 11 JProgressBar...创建中间容器(面板容器) JPanel panel = new JPanel(); // 创建面板容器,使用默认的布局管理器 // 3.
视图通常直接从模型中取得它需要显示的状态和数据。视图使用组合模式实现用户界面,用户界面通常组合了嵌套的组件,像面板、框架和按钮。 控制器:取得用户的输入,并解读其对模型的意思。...控制器是视图的策略,视图可以使用不同的控制器(不同的策略),得到不同的行为。 模型:模型持有所有数据、状态和程序逻辑。使用了观察者模式,以便观察者更新,同时保持两者之间解耦。...流程 : 用户在视图上面进行操作,然后控制器取得用户的输入,并解读其对模型的意思。 控制器调用模型,模型负责处理具体逻辑。然后通知视图更新。 使用的模式 观察者模式 ? 策略模式 ? 组合模式 ?...(观察敲击) ArrayList beatObservers = new ArrayList(); // 观察者列表(观察BPM) ArrayList...这给Java EE的开发带来一系列问题 如 代码耦合性强,系统控制流程复杂,难以维护等,为了解决这些问题,原Sun公司制定了Model1模式作为Java EE程序员开发的考性规范.
在swing事件模型中由三个分离的对象完成对事件的处理,分别为事件源、事件和监听程序,由事件源触发一个事件,它由一个或多个监听器进行监听,并且由监听器触发事件并执行相应的事件。...然而对于事件监听器,其实就是一个“实现特定监听器接口”类对象,事件几乎都以对象来表示,它是某种事件类的对象,事件源(控件,如按钮)会在用户做出相应的动作(如点击按钮)时产生事件对象, 在这里需要注意的是...动作时间监听器 动作事件(ActionEvent)监听器是swing中比较常用的一种监听器,在Java窗体中很多事件都需要使用它来进行监听,如我们常见的按钮点击事件等,以下是动作事件监听器的接口和常见的事件源...: 事件名称 事件源 监听接口 添加或删除相应类型监听器的方法 ActionEvent JButton、JList、JTextField ActionListener addActionListener...一般情况下,为事件源做监听事件应使用匿名内部类的形式,如上例代码为按钮添加事件时采用匿名内部类的形式 焦点事件监听器 焦点事件(FocusEvent)监听器在实际使用中同动作事件监听器的使用一样广泛
,实现可视化,通过socket实现服务端与客户端的连接,服务端每接收一个连接,把传进来的用户名和对应的socket连接封装成一个User对象,把User对象存进一个ArrayList的用户列表并把User...对象通过取用户名方法取得用户名存进一个ArrayList的用户名列表,添加一个JPanel组件,将ArrayList中的内容通过循环显示JPanel中并布局在窗体的右边,在每当有人上线或者下线,刷新JPanel...用于绑定强制用户下线的事件监听,事件监听中将获取的JTextField的内容与用户名列表进行逐一匹配,匹配上则创建JSON格式的键值对对象,通过用户列表循环广播告知其他用户,并在用户列表和用户名列表中分别删除该用户信息...6.使用JSONObject对象封装数据 在数据的传输中运用了键值对的形式进行传输,客户端传输给服务端的数据包中,通过判断private键的值来确认是否私发,通过username键告知服务端客户端的用户名...,用于存放连接上的用户信息 ArrayList user_list = new ArrayList(); //用户名列表,用于显示已连接上的用户 ArrayList
领取专属 10元无门槛券
手把手带您无忧上云