java将数组刷新到jList

OK,所以我有一个JList,并且内容提供了一个数组。我知道如何向数组中添加元素,但是我想知道如何刷新JList

…还是有可能?我尝试了Google。:\

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<data.length; i++) {

listModel.addElement(data[i]);

}

list=new JList(listModel);

然后,您可以简单地通过列表模型进行更改,例如

listModel.addElement("New item");

listModel.removeElementAt(1); // remove the element at position 1

以上是 java将数组刷新到jList 的全部内容, 来源链接: utcz.com/qa/405884.html

回到顶部