我今天遇到了这个问题,不知道如何解决。我知道这可能是我忽略的愚蠢的事情,但已经几个小时了...... 所以,
我有我的类,它扩展了 JPanel。里面我只有一个带有 jlist 的滚动 Pane 。此类接收一个用于填充 JList 的 List。该列表包含几个“Orcamento”,这是我的节目类(class)之一。该类有一个 .toString 方法。
我尝试过使用模型,并使用 .toArray 直接使用列表创建 JList。我尝试过转换 ArrayList 中的列表并执行相同的操作。我尝试使用 DefaultListModel<String>
和DefaultListModel<Orcamento>
.
希望你能帮我解决这个问题。
这是一些代码:
JPanel
package Views;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.DefaultListModel;
import javax.swing.JPanel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import Models.Orcamento;
import javax.swing.ListSelectionModel;
import javax.swing.AbstractListModel;
public class OrcamentoView extends JPanel {
private JList lista;
private DefaultListModel modelo;
/**
* Create the panel.
*/
public OrcamentoView(List<Orcamento> lst) {
setBounds(0, 21, 434, 241);
setLayout(null);
ArrayList<Orcamento> orcs= new ArrayList(lst);
DefaultListModel<String> modelo = new DefaultListModel<String>();
for(Orcamento o:orcs)
modelo.addElement(o.toString());
lista = new JList();
lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
lista.setModel(modelo);
JScrollPane scrollPane = new JScrollPane(lista);
scrollPane.setBounds(10, 11, 414, 219);
add(scrollPane);
}
}
完成 JPanel 后我会这样做:
public void setContent(JPanel menu, JPanel content){
contentPane.removeAll();
contentPane.add(menu);
contentPane.add(content);
contentPane.repaint();
}
将面板添加到我的 JFrame 中。(我一直在对许多其他面板执行此操作)。
最佳答案
你忘了吗?
add(lista);
关于java - 在 JList 中包含 List/ArrayList 项目不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11149848/