Java:DefaultListModel 和数组
Java: DefaultListModel and arrays
有没有办法将数组中的所有字符串添加到 JList 中?我正在使用 DefaultListModel,但我不知道如何使用它。有没有办法只使用 addElement 然后添加数组?我试过了,还是不行。
这是我的代码:
package program;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
public class Main{
public static void main(String[] args){
JFrame frame = new JFrame();
JPanel pane = new JPanel();
DefaultListModel model = new DefaultListModel();
JList list = new JList(model);
//JFrame, frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
//JPanel, panel
pane.setLayout(new FlowLayout());
frame.add(pane);
//JList, list
String[] lists = {"asjd.txt", "okay.ss", "jsjs.okay.txt"};
model.addElement(lists);
JScrollPane listScroller = new JScrollPane(list);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setLayoutOrientation(JList.VERTICAL);
list.setVisibleRowCount(3);
listScroller.setPreferredSize(new Dimension(250, 80));
listScroller.setBounds(5, 5, 200, 300);
pane.add(listScroller);
}
}
创建您自己的循环:
for (String item: lists)
model.addElement( item );
此外,在将所有组件添加到框架后,框架应该可见。
listScroller.setPreferredSize(new Dimension(250, 80));
listScroller.setBounds(5, 5, 200, 300);
不要使用 setPreferredSize()。您已经使用 setVisibleRowCount() 来控制 JList 的大小。
不要使用 setBounds()。那是布局管理器的工作。
JList 包含一个构造函数
JList(ListModel <E> dataModel)
这意味着您可以创建自己的接受数组的 ListModel 对象。
有没有办法将数组中的所有字符串添加到 JList 中?我正在使用 DefaultListModel,但我不知道如何使用它。有没有办法只使用 addElement 然后添加数组?我试过了,还是不行。
这是我的代码:
package program;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
public class Main{
public static void main(String[] args){
JFrame frame = new JFrame();
JPanel pane = new JPanel();
DefaultListModel model = new DefaultListModel();
JList list = new JList(model);
//JFrame, frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
//JPanel, panel
pane.setLayout(new FlowLayout());
frame.add(pane);
//JList, list
String[] lists = {"asjd.txt", "okay.ss", "jsjs.okay.txt"};
model.addElement(lists);
JScrollPane listScroller = new JScrollPane(list);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setLayoutOrientation(JList.VERTICAL);
list.setVisibleRowCount(3);
listScroller.setPreferredSize(new Dimension(250, 80));
listScroller.setBounds(5, 5, 200, 300);
pane.add(listScroller);
}
}
创建您自己的循环:
for (String item: lists)
model.addElement( item );
此外,在将所有组件添加到框架后,框架应该可见。
listScroller.setPreferredSize(new Dimension(250, 80));
listScroller.setBounds(5, 5, 200, 300);
不要使用 setPreferredSize()。您已经使用 setVisibleRowCount() 来控制 JList 的大小。
不要使用 setBounds()。那是布局管理器的工作。
JList 包含一个构造函数
JList(ListModel <E> dataModel)
这意味着您可以创建自己的接受数组的 ListModel 对象。