动态增加list元素依靠ListModel类来实现。元素值通过properties文件的值保存,以分号间隔
/**
* 添加邮箱地址按钮
*
* **/
private void jButton3ActionPerformed(ActionEvent evt) {
String address = jTextField_addMail.getText().trim();
if (!address.isEmpty()) {
Vector<String> dataVector = new Vector<String>();
ListModel listDataModel = mailAddrList.getModel();
StringBuffer write2File = new StringBuffer();
for (int i = 0; i < listDataModel.getSize(); i++) {
String s = (String) listDataModel.getElementAt(i);
dataVector.add(s);
write2File = write2File.append(";" + s);
}
if (address != null && !address.isEmpty()) {
dataVector.add(address);
write2File.append(";" + address); //写进配置文件的字符串
}
while (write2File.toString().startsWith(";"))
write2File = write2File.replace(0, 1, ""); //就是去掉";"
mailAddrList.setListData(dataVector);
SettingsAction.setProperty(path, "MailAddr", write2File
.toString());
JOptionPane.showMessageDialog(null, "添加并保存成功。", "提示",
JOptionPane.INFORMATION_MESSAGE);
}
}
/**
* 删除邮箱list选择项按钮动作
*
* **/
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
if (!mailAddrList.isSelectionEmpty()) {
initMailAddrList();
mailAddr = mailAddr.replace((String) mailAddrList.getSelectedValue(), "");
while (mailAddr.contains(";;"))
mailAddr = mailAddr.replace(";;", ";");
try { //同步写入文件
SettingsAction.setProperty(path, "MailAddr", mailAddr
.startsWith(";") ? mailAddr.substring(1) : mailAddr);
} catch (IOException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "发生未知错误,请重试。", "提示",
JOptionPane.INFORMATION_MESSAGE);
}
Vector<String> dataVector = new Vector<String>();
ListModel listDataModel = mailAddrList.getModel();
for (int i = 0; i < listDataModel.getSize(); i++) {
String s = (String) listDataModel.getElementAt(i);
if (!((String) mailAddrList.getSelectedValue()).equals(s)) //排除所选项
dataVector.add(s);
}
mailAddrList.setListData(dataVector);
JOptionPane.showMessageDialog(null, "删除并保存成功。", "提示",
JOptionPane.INFORMATION_MESSAGE);
}
}
private JList mailAddrList;
private JTextField jTextField_addMail;
private String mailAddr;
private Properties pros = new Properties();
private String path = System.getProperty("user.dir")
+ "\\src\\conf.properties";
初始化一些全局变量
private void initMailAddrList() {
FileInputStream fis = new FileInputStream(path);
pros.load(fis);
mailAddr = (String) pros.get("MailAddr");
fis.close();
}
初始化List通过一个匿名内部类实现:
mailAddrList.setModel(AbstractListModel() {
String[] strings = mailAddr.split(";");
public int getSize() {
return strings.length;
}
public Object getElementAt(int i) {
return strings[i];
}
});
分享到:
相关推荐
### Java Swing 组件:JList 学习笔记 #### JList 概述 JList 是 Java Swing 中的一个重要组件,用于展示列表项。它能够帮助开发者实现数据的动态展示、编辑以及选择等功能,广泛应用于各种桌面应用软件界面设计中...
JavaSwing 中的 JList 组件自定义渲染器 JavaSwing 是一个功能强大且灵活的 GUI 组件库,提供了许多自定义组件的方式。JList 是其中的一个重要组件,用于显示列表数据。但是,JList 的默认外观并不美观,如何...
对于那些希望为列表增加更多视觉元素(如图片)的应用程序来说,使用 `ListCellRenderer` 接口可以大大增强 `JList` 的表现力。本文将详细介绍如何使用 `ListCellRenderer` 来创建一个更加美观且功能丰富的 `JList` ...
除了使用构造函数直接初始化,`JList`还提供了多种方法来动态修改其内容,如`setModel()`方法可以设置`ListModel`,`add()`和`remove()`方法可以添加或删除单个元素。例如,我们可以添加一个新的选项: ```java ...
Java Swing JList 列表框是 Java 中的一个基本组件,用于显示多个选项,允许用户选择一个或多个选项。下面详细介绍 JList 的实现。 概述 JList 是一个列表框,用于显示多个选项,允许用户选择一个或多个选项。...
在 Swing 中,`JList` 是一个常用的组件,用于显示一系列的项目,让用户进行选择。在许多情况下,我们可能需要在 `JList` 中添加复选框功能,让用户能够多选列表中的项。本文将详细介绍如何在 Java Swing 中创建一个...
在Java Swing库中,`JList`是一个常用的组件,用于展示一系列可选择的项。在这个特定的情况下,我们探讨的是如何利用`JList`来显示图片,并实现这些图片的动态变化。这在创建图像库、画廊应用或者进行图形用户界面...
本资料“JFC Swing活学活用系列之定制JList显示”聚焦于如何利用Swing中的JList组件来实现自定义的显示效果。 JList是一个可滚动的组件,允许用户从一系列选项中进行选择。默认情况下,JList会按照字符串形式展示...
以下是一些主要的Swing组件及其常用构造方法: 1. **顶层容器**: - `JFrame`:作为应用程序的主要窗口,它是一个顶级容器。构造方法包括`JFrame()`和`JFrame(String s)`,其中`s`是窗口的标题。 - `JApplet`:...
总的来说,实现`JList`的上下左右拖动需要对Java Swing组件有深入理解,涉及到鼠标事件监听、模型操作以及可能的自定义布局。这种交互性改进可以使用户更方便地管理和排序列表中的项,尤其适用于需要用户进行多步...
在Java Swing中,`JComboBox`和`JList`是两种常用的用户界面组件,用于创建交互式的下拉列表和多选列表。在这个“文件浏览器组件”中,...同时,这也是一个很好的实践案例,展示了如何通过Swing组件实现特定的UI需求。
在这个特定的Demo中,我们关注的是如何使用Swing来实现一个商品列表,其中包含商品的数量加减功能以及整行删除的功能。这个功能通常在电商应用或者库存管理软件中会用到。 首先,我们需要了解`JTable`,这是Swing中...
模型可能是`DefaultListModel`,它允许动态地添加、删除和更改列表的元素。 ```java DefaultListModel<String> model = new DefaultListModel(); model.addElement("Item 1"); model.addElement("Item 2"); model....
在Java Swing中,`JList` 组件被广泛用于创建用户界面中的列表框。不同于选择框(通常指`JComboBox`),`JList` 支持多种选择模式,使得用户能够灵活地进行单选或多选操作。本文将详细介绍如何通过`JList` 实现不同...
- 将`JList` 添加到容器,如`someContainer.add(list)`,这里的`someContainer`可能是`JFrame`、`JPanel`或其他Swing组件。 - 设置选择模式,例如`list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION)`或`...
在Java的Swing图形用户界面库中,`JList`组件提供了展示列表项的强大功能,不仅能够支持单列或多列显示,还提供了丰富的事件处理机制,使得它成为构建用户交互界面时不可或缺的一部分。本文将深入探讨`JList`的基本...
在Java Swing库中,`JList`是一个常用的组件,用于展示一系列可选择的项。然而,标准的`JList`功能有限,有时我们需要对其进行自定义,以满足特定的应用场景需求,比如实现类似Android中`ListView`的效果。在这个...
在Java Swing库中,`JList`是一个常用的组件,用于展示一系列可选择的项。它通常用于用户需要从多个选项中进行单选或多选的场景。在这个示例中,我们将探讨如何在`JList`中集成`JCheckBox`,使得用户能够通过勾选复...
- `javax.swing.JList`:用于创建列表组件,这里用于展示可用字体列表。 - `javax.swing.JDialog`:用于创建模态对话框,作为字体选择器的窗口。 - `javax.swing.JRadioButton`:用于创建单选按钮,用于选择预览文本...