我想将一个继承了
这是自定义对象:
这是渲染器。
这是我创建列表的方法。
并且
JPanel
的自定义对象添加到 JList
中。一切都很好,但是我无法与它们进行交互。例如,我无法在面板上添加的 JTextField
中输入文本。我使用了 DefaultListModel<ListItem> = new DefaultListModel<ListItem>();
。请帮忙解决。这是自定义对象:
public class ListItem extends JPanel{
private static final long serialVersionUID = 1L;
private JTextField textField;
public ListItem() {
setLayout(new MigLayout("", "[grow][grow]", "[30px:n:30px][30px:n:30px][30px:n:30px]"));
JLabel lblNewLabel = new JLabel("New label");
add(lblNewLabel, "cell 0 0,alignx trailing");
textField = new JTextField();
add(textField, "cell 1 0,growx");
}
这是渲染器。
public class ListItemRenderer implements ListCellRenderer<Object>{
@Override
public Component getListCellRendererComponent(JList<? extends Object> list, Object value, int index,
boolean isSelected, boolean cellHasFocus) {
Component component = (Component) value;
if(isSelected)
component.setBackground(Color.RED);
return component;
}
这是我创建列表的方法。
list = new JList<ListItem>(addedItems);
并且
ListItem temp = new ListItem();
addedItems.addElement(temp);
list.setCellRenderer(new ListItemRenderer());