java将数组刷新为jList
好的,所以我有一个JList,内容提供了一个数组。 我知道如何向数组添加元素,但我想知道如何刷新JList ……或者它是否可能? 我试过谷歌。 :\
import java.applet.Applet; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class bs extends JApplet implements MouseListener { public static String newline; public static JList list; public void init() { String[] data = {"one", "two", "three", "four"}; list = new JList(data); this.getContentPane().add(list); list.addMouseListener(this); String newline = "\n"; list.setVisible(true); } public void refresh(){ Address found; this.listModel.clear(); int numItems = this.getAddressBookSize(); String[] a = new String[numItems]; for (int i=0;i<numItems;i++){ found = (Address)Addresses.get(i); a[i] = found.getName(); } /* attempt to sort the array */ Arrays.sort(a, String.CASE_INSENSITIVE_ORDER); for (int i=0;i<numItems;i++) { this.listModel.addElement(a[i]); } } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { Object index = list.getSelectedValue(); System.out.println("You clicked on: " + index); } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } public void paint(Graphics g) { } }
有任何想法吗?
谢谢。
一个好方法是创建一个ListModel来为您管理数据并处理更新。
就像是:
DefaultListModel listModel=new DefaultListModel(); for (int i=0; i
然后您可以通过列表模型进行更改,例如
listModel.addElement("New item"); listModel.removeElementAt(1); // remove the element at position 1
您只需提供自己的ListModel:
class MyModel extends AbstractListModel { private String[] items; public MyModel(String[] items) { this.items = items; } @Override public Object getElementAt(int index) { return items[index]; } @Override public int getSize() { return items.length; } public void update() { this.fireContentsChanged(this, 0, items.length - 1); } }
排序项目后,只需调用update
。
- 为什么Java 7在成功安装JRE后无法validation – Java 7没有运行任何浏览器
- “安全设置阻止的应用程序”阻止在Linux上使用oracle SE 7更新51运行的applet
- Applet类加载器无法在applet的jar中找到类
- 无法使用JRE 7u51在Internet Explorer 11中运行Java Applet
- 是否有Java Applets的插件框架?
- 使用java applet查看.doc文件
- 如何在浏览器和Java Web Start applet之间进行通信
- Java Applet:调用JavaScript – JSObject.getWindow(this)返回null
- 在applet中找不到主要方法错误