如例子代码中所示,对于jlist,第一次往model中addelement时正常,然后默认选中list中的第一条,第二次点击fresh时,程序先把model clear后再往里面addelement,这时速度就会非常慢,而如果默认选中的不是第一天记录,addelement就会正常,大家有遇到过这种情况的吗?
public class TestJList extends JFrame {
private static final long serialVersionUID = 1L;
JButton fresh = new JButton("fresh");
JScrollPane jsp = new JScrollPane();
JPanel panel = new JPanel();;
DefaultListModel model = new DefaultListModel();
Runnable runnable = null;
Thread t = null;
JList list = new JList(model);
private TestJList() {
init();
}
void init() {
this.setTitle("JList test");
this.setSize(300, 200);
loadData();
panel.setLayout(new BorderLayout());
fresh.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
loadData();
}
});
panel.add(fresh, BorderLayout.NORTH);
jsp.getViewport().setView(list);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
System.out.println("the item you have selected is :"
+ e.getLastIndex());
}
});
panel.add(jsp, BorderLayout.CENTER);
this.getContentPane().add(panel);
this.setVisible(true);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void loadData() {
fresh.setEnabled(false);
if (model.size() != 0) {
model.clear();
}
runnable = new Runnable() {
public void run() {
for (int i = 0; i < 1000; i++) {
model.addElement("hello world:" + i);
}
list.setSelectionInterval(0, 0);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
fresh.setEnabled(true);
}
});
}
};
SwingUtilities.invokeLater(runnable);
}
public static void main(String[] args) {
new TestJList();
}
}
分享到:
相关推荐
在Java Swing库中,`JList`是一个常用的组件,用于展示一系列可选择的项。在这个特定的情况下,我们探讨的是如何利用`JList`来显示图片,并实现这些图片的动态变化。这在创建图像库、画廊应用或者进行图形用户界面...
### JList在Java中的应用与特性详解 #### 引言 在Java的Swing图形用户界面库中,`JList`组件提供了展示列表项的强大功能,不仅能够支持单列或多列显示,还提供了丰富的事件处理机制,使得它成为构建用户交互界面时...
JavaSwing 中的 JList 组件自定义渲染器 JavaSwing 是一个功能强大且灵活的 GUI 组件库,提供了许多自定义组件的方式。JList 是其中的一个重要组件,用于显示列表数据。但是,JList 的默认外观并不美观,如何...
在Java编程中,`JList` 是Swing组件库中的一个关键部分,它用于展示一系列的选项或元素供用户选择。在默认情况下,`JList` 只能显示字符串元素,但通过自定义渲染器(CellRenderer),我们可以扩展其功能以显示更...
在Java Swing库中,`JList`是一个非常重要的组件,用于显示一组可选择的项。在GUI应用程序中,它常用于展示列表数据,允许用户进行单选或多选操作。本篇将深入探讨如何使用`JList`以及如何为其添加滚动条。 首先,`...
swing中的jlist 代码中定义了两个jlist 从一个jlist双击列表项可以将该项从这个列表删除并添加至另外一个列表中去
在Java Swing库中,`JList`是一个常用的组件,用于展示一系列可选择的项。它在用户界面设计中常用于创建列表视图,允许用户通过单击或键盘导航来选择项目。在本教程中,我们将深入探讨如何实现`JList`的上下左右拖动...
在Java编程语言中,`JList` 是Swing库中的一个组件,用于显示一组可选择的项目。`JList` 可以用作单选或多选列表,常用于创建下拉菜单、列表视图等用户界面元素。在这个例子中,我们将深入探讨`JList` 的使用方法,...
在Java编程中,`JList` 是Swing组件库中的一个关键部分,它用于展示一系列选项,用户可以选择其中的一个或多个。本篇文章将深入探讨如何使用Java构建具有各种特性的`JList`,包括添加图片、实现拖放功能以及自定义...
在Java Swing库中,`JList`是一个常用的组件,用于展示一系列可选择的项。它通常用于用户需要从多个选项中进行单选或多选的场景。在这个示例中,我们将探讨如何在`JList`中集成`JCheckBox`,使得用户能够通过勾选复...
在Java Swing库中,`JList`是一个非常重要的组件,用于显示一组可选择的项。在用户与`JList`进行交互时,如选择、取消选择等操作,我们可能需要捕获这些事件并做出响应。这就涉及到事件监听器的使用。本教程将详细...
在Java Swing中,`JList` 是一个常用的组件,用于展示一系列可选择的项。当用户点击`JList`的空白区域时,默认行为是选中列表的最后一项。这对于某些应用场景,比如带有右键菜单的界面,可能会带来不便,因为用户...
JLIst的使用,主要是介绍基础
### JList多选值的获取 #### 概述 在Java Swing中,`JList` 组件被广泛用于创建用户界面中的列表框。不同于选择框(通常指`JComboBox`),`JList` 支持多种选择模式,使得用户能够灵活地进行单选或多选操作。本文...
### Java Swing 更酷的 JList:实现列表项带有图片标签 在Java Swing中,`JList` 是一个非常有用的组件,用于展示一个可滚动的列表。对于那些希望为列表增加更多视觉元素(如图片)的应用程序来说,使用 `...
在Java Swing库中,`JList`是一个常用的组件,用于展示一系列可选择的项。然而,标准的`JList`功能有限,有时我们需要对其进行自定义,以满足特定的应用场景需求,比如实现类似Android中`ListView`的效果。在这个...
### Java Swing 组件:JList 学习笔记 #### JList 概述 JList 是 Java Swing 中的一个重要组件,用于展示列表项。它能够帮助开发者实现数据的动态展示、编辑以及选择等功能,广泛应用于各种桌面应用软件界面设计中...
本资料“JFC Swing活学活用系列之定制JList显示”聚焦于如何利用Swing中的JList组件来实现自定义的显示效果。 JList是一个可滚动的组件,允许用户从一系列选项中进行选择。默认情况下,JList会按照字符串形式展示...
在Java Swing中,`JComboBox`和`JList`是两种常用的用户界面组件,用于创建交互式的下拉列表和多选列表。在这个“文件浏览器组件”中,它们被巧妙地结合在一起,为用户提供了一个功能丰富的文件浏览和选择的界面。这...
swing JList 拖拽记录到 JTable