[英]Add and show object in JList
我正在一个项目上,我应该创建一个将信息存储在JList中的应用程序,当我在JList中选择一个人的名字时,它应该显示该人的联系信息。
我做了2个类-其中一个在contact类中,另一个是使用JFrame的类。
这是联系人类
private String firstName;
private String lastName;
private String phNumber;
private String address;
public Contact(String firstName, String lastName, String phNumber, String address) {
this.firstName = firstName;
this.lastName = lastName;
this.phNumber = phNumber;
this.address = address;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getPhNumber() {
return phNumber;
}
public void setPhNumber(String phNumber) {
this.phNumber = phNumber;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return firstName + " " + lastName;
}
@Override
public int compareTo(Object o) {
if(((Contact) o).getFirstName().compareTo(this.firstName)>=1){
return 1;
}
if(((Contact) o).getFirstName().compareTo(this.firstName)<=-1){
return -1;
}
return 0;
}
}
这是我正在使用的添加按钮的代码。
JButton btnNewButton = new JButton("Save");
btnNewButton.addActionListener(new ActionListener() {
@SuppressWarnings({ "unchecked", "serial" })
public void actionPerformed(ActionEvent e) {
String f = txtFirst.getText();
String l = txtLast.getText();
String p = txtPhone.getText();
String a = txtAddress.getText();
list.add(new Contact(f, l, p, a));
Object[] array = list.toArray();
//listView is the name of the JList
listView.setListData((Contact[]) array);
}
});
btnNewButton.setBounds(244, 153, 89, 23);
frame.getContentPane().add(btnNewButton);
我只需要帮助将Contact类添加到JList中,并且能够在JList上显示名字和姓氏,谢谢您的帮助。
您可以只将Contact对象添加到JList中,然后创建一个自定义渲染器。
就像是:
class ContactRenderer extends DefaultListCellRenderer
{
public Component getListCellRendererComponent(
JList list, Object value, int index,
boolean isSelected, boolean cellHasFocus)
{
super.getListCellRendererComponent(list, value,
index, isSelected, cellHasFocus);
Contact contact = (Contact)value;
setText(contact.getFirstName() + " " + contact.getLastName()
return this;
}
}
使用以下命令将渲染器分配给Jlist:
list.setCellRenderer( new ContactRenderer() );
阅读Swing教程中有关创建自定义渲染器的部分,以获取更多信息和示例。 示例渲染器用于组合框,但是概念相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.