动态增加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学习笔记Java Swing组件:Jlist学习笔记
swing中的jlist 代码中定义了两个jlist 从一个jlist双击列表项可以将该项从这个列表删除并添加至另外一个列表中去
JavaSwing 中的 JList 组件自定义渲染器 JavaSwing 是一个功能强大且灵活的 GUI 组件库,提供了许多自定义组件的方式。JList 是其中的一个重要组件,用于显示列表数据。但是,JList 的默认外观并不美观,如何...
Swing组件(javax.swing.-) 面板:JPanel 标签化窗格:JTabbedPane 拆分窗格:JSplitPane 滚动窗格:JScrollPane 工具栏:JToolBar 桌面窗格:JDesktopPane 内部框架:JInternalFrame 分层窗格:JLayeredPane ...
swing JList 拖拽记录到 JTable
实现Jlist带上了图片标签 主要用上了ListCellRenderer
主要介绍了Java Swing JList列表框的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
使用JList 显示图片并动态改变显示的图片!
JList是Swing库提供的一个用于显示列表数据的组件,它可以显示单个或多个项目,并且允许用户进行选择操作。
JAVA Swing 实现商品列表,数量加减 ,删除整行 Demo 单击 "添加 "按钮列表增加数据行 单击 数量单元格弹出数量加减窗口 单击 "删除"按钮 删掉当前行商品信息
包含swing入门组件完整示例, 几乎包含swing所有组件介绍 ,可以带你入门了解swing的各种UI效果和使用示例,让你对swing有个整体了解. 顶层容器:JFrame/JDialog/JWINDOW 容器:JTabbedPane/JScrollPane/JSplitPane/...
这是我之前做的一个项目要实现的一个功能,Jlist 动态添加删除移动Jcheckbox
JList 上下左右拖动,例子说明.上下左右拖动
JFC Swing活学活用系列之定制JList显示.rar
JList多选值的获取, 由JList组件实现的列表框有3种选取模式,设置方法为通过JList类的setSelectionMode(int selectionMode)方法,该方法的入口参数可以通过ListSelectionModel类中的静态常量设置。
NULL 博文链接:https://tianqiushi.iteye.com/blog/2327363
这是一个应用java编写的用于文本编辑,即计事本。...(主要是帮助初学者,学习高级Swing组件,如:JTextField,JTextArea,JList,JScrollPane,JSplitePane) 如果觉得好用,想获取源代码者,请联系QQ1135681893.
自定义的JList,像android的ListView,可以点击按钮后马上删除当前条,并即时显示最新数据,有点数据驱动UI的感觉。Swing自定义控件必备。
主要介绍了Java Swing中JList选择事件监听器ListSelectionListener用法,结合具体实例形式分析了中JList选择事件监听器ListSelectionListener的功能、使用方法及相关注意事项,需要的朋友可以参考下
关于java中jlist的一些用法,。。