【发布时间】:2014-01-12 05:46:56
【问题描述】:
为什么我的 JList 没有更新?
我重新实例化列表对象。我重新粉刷并重新验证...出了什么问题?
需要更多细节需要更多
外部类:
ControlPanel.usernames.add(username);
ControlPanel.list = new JList(ControlPanel.usernames.toArray());
ControlPanel.panel.repaint();
ControlPanel.panel.revalidate();
控制面板.java
package main;
import java.awt.BorderLayout;
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
@SuppressWarnings("serial")
public class ControlPanel extends JFrame {
public static JPanel panel = new JPanel();
JScrollPane scrollpane;
static JLabel players;
static String s;
public static ArrayList<String> usernames = new ArrayList<String>();
public static JList list;
// public static String categories[] = {};
public ControlPanel() {
list = new JList(usernames.toArray());
scrollpane = new JScrollPane(list);
panel.add(scrollpane, BorderLayout.CENTER);
add(panel);
setTitle("RuneShadows CP");
setSize(400, 400);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
}
【问题讨论】:
-
This answer 我相信展示了如何使用列表的模型对象(而不是创建一个全新的 JList)来更新 JList。
-
你能不能对我们好一点,发个SSCCE。虽然很明显,疯狂程序员的回答是正确的,如下所示
-
谢谢泰格。效果很好。
标签: java arrays swing arraylist jlist