0

0

java图形用户界面列表框

高洛峰

高洛峰

发布时间:2016-10-20 10:54:35

|

2612人浏览过

|

来源于php中文网

原创

java图形用户界面之列表框

      列表框通过swing组件jlist产生,其总是在屏幕上占据固定行数的空间。如果要得到列表框中被选中的元素,只需调用getselectedvalueslist(),它可以产生一个字符串数组,内容为被选中的元素名称。jlist组件允许多重选择;如果按住ctrl键,可以选中所有点击的元素;如果选中一个元素,按住shift键并单击另一个元素,那么这两个元素之间的所有元素都被选中;要从选中的元素中去掉一个,按住ctrl键单击该元素即可。

      初始化列表框后,接着便是向列表框添加和修改内容。分为静态操作和动态操作。

1、静态操作

      静态操作便是将所有元素同时添加到JList中,添加后不能修改,不能删除,即在程序执行过程中不能操作列表框。

E.g.

立即学习Java免费学习笔记(深入)”;

package test;

import javax.swing.*;
import java.awt.*;
import static net.mindview.util.SwingConsole.*;

public class ListTest1 extends JFrame{
    private String[] str = {"Monday","Tuesday","Wednesday","Thursday","Friday","Staturday","Sunday"};
    private JList list;public ListTest1()
    {
        list = new JList(str);
        setLayout(new FlowLayout());
        add(list);
    }
    
    public static void main(String[] args)
    {
        run(new ListTest1(),200,100);
    }
}

如上例,只要在初始化JList时将所有元素添加进去即可。

执行结果:列表框不可以被操作。

1.jpg

2、动态操作

      通过查看JList的方法,可以发现JList不负责列表框的动态操作,所有的动态操作的细节可以在“列表模型”即DefaultListModel中完成,只需将该列表模型加入JList即可。

            DefaultListModel listmodel = new DefaultListModel();

            listmodel.addElement(element1);//添加元素

            listmodel.clear();//清除全部元素

            listmodel.remove(int index);//清除指定位置的元素

E.g.

立即学习Java免费学习笔记(深入)”;

package test;

import java.awt.*;import java.awt.event.*;import static net.mindview.util.SwingConsole.*;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class ListTest extends JFrame{
    private String[] str = {"Monday","Tuesday","Wednesday","Thursday","Friday","Staturday","Sunday"};
    private JButton button1 = new JButton("Add Item"),
                    button2 = new JButton("Clear Item");
    private JTextArea text = new JTextArea(str.length,20);
    private DefaultListModel listmodel = new DefaultListModel();
    private JList list = new JList(listmodel);
    //将列表模型加入JList,列表模型负责完成动态操作,JList负责创建列表以及许多其它工作(如多重选择)。
    private int count = 0;
    private boolean flag = false;
    
    public ListTest()
    {
        text.setEditable(false);//只是用来显示,不能编辑
        for(int i = 0;i<4;i++)
        {
            listmodel.addElement(str[count++]);
        }
        
        button1.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e)
            {
               if(count

执行结果:

wxPython 2.8 Application Development Cookbook英文pdf版
wxPython 2.8 Application Development Cookbook英文pdf版

在今天的桌面应用世界上有大量的奖励,以便能够开发应用程序,可以运行在多个环境。目前,有一种跨平台框架可供选择的Python开发桌面应用程序屈指可数。 wxPython的就是这样的一个跨平台的GUI工具包的Python编程语言。它允许Python程序员创建一个完整的,功能强大的图形用户界面的程序,简单,方便。 wxPython的代码风格,改变了多年来不少,并得到更多Python的。例子,你会发现这本书是对不断更新,反映在风格上的变化。 本书提供最新的书,快速创建健壮的,可靠,可重复使用的wxPython应用

下载

1.jpg

      在上面的程序中,对JList的处理过程中用到了JList所支持的事件ListSelectionEvent的getValueIsAdjusting()方法以及JList的getSelectedValuesList()方法,需要注意这两个方法的用法。

(1)Boolean javax.swing.event.ListSelectionEvent.getValueIsAdjusting()

      返回此事件是否是仍然在更改的多个不同事件之一,如果此事件是仍然在更改的多个不同事件之一,则返回 true。

      例如,对于选择被更新以响应一个用户的拖动的事件,那么在拖动开始时,此属性被设置为 true;在拖动结束时被设置为 false。在拖动期间,监听器接收 valueIsAdjusting 属性设置为 true 的事件。在拖动的最后,当更改终止时,监听器接收一个值设置为 false 的事件。

     如果将JList对象的注册程序去掉更新检测的语句:

if(e.getValueIsAdjusting())    return;

输出为:

1.jpg

     可见,没有了更新检测,选中列表框元素后,有重复输出。

 

(2)List javax.swing.JList.getSelectedValuesList()

      JList对象调用getSelectedValuesList()方法,产生一个字符串数组,内容为被选中的元素名称。

3、JList滚动条

      JList本没有对滚动提供直接的支持,我们只要将JList包装进JScrollPane,它将自动帮助处理所有细节。

      总结:JList想添加元素,可以执行将所有元素在JList初始化时加入的静态操作,也可以利用“列表模型”DefaultListModel处理所有列表修改细节的动态操作。

注意:在JList元素选择的过程中可能会用到更新检测,从而确保程序的稳定性。

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

84

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

24

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

56

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

16

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

9

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

26

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 2.6万人学习

C# 教程
C# 教程

共94课时 | 6.9万人学习

Java 教程
Java 教程

共578课时 | 46.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号