[英]How to iterate through an ArrayList and only pull out 1 field from each object
我正在处理JList问题。 我有一个对象的数组列表,每个都有3个字段。 我想将lastName,firstName放在JList中,但只能弄清楚如何从ArrayList中拉出最后一个对象信息。
任何帮助,将不胜感激。 谢谢
import java.awt.EventQueue;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.ListModel;
import javax.swing.ListSelectionModel;
import javax.swing.AbstractListModel;
public class TestingListsGUI
{
private JFrame frame;
String[] values;
/**
* Launch the application.
*/
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
TestingListsGUI window = new TestingListsGUI();
window.frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public TestingListsGUI()
{
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize()
{
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
// Create Array list and populate it with generic info for testing
final List<JListsTesting> myList = new ArrayList<JListsTesting>();
myList.add(new JListsTesting("Bruce", "James", "Totally Awesome"));
myList.add(new JListsTesting("Potter", "Harry", "A Magician"));
myList.add(new JListsTesting("Sanders", "Col", "The Chicken Meister"));
myList.add(new JListsTesting("Bond", "James", "Licensed to Kill"));
values = new String[myList.size()];
for (int i = 0; i < myList.size(); i++)
{
values[i] = JListsTesting.getFirstName();
}
JList list = new JList();
list.setModel(new AbstractListModel()
{
public int getSize()
{
return values.length;
}
public Object getElementAt(int index)
{
return values[index];
}
});
list.setSelectedIndex(0);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setBounds(33, 23, 236, 249);
frame.getContentPane().add(list);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.