【发布时间】:2012-03-27 09:25:15
【问题描述】:
我正在处理的应用程序需要使用 JList,其中每个 ListItem 是一个标签,后跟一个按钮。
我所做的是我为文本字段创建了一个具有字符串成员的类,并将类对象添加到 Jlist。
现在对于按钮,我实现了一个自定义列表单元格渲染器,如下所示:
public renderer()
{
text=new JLabel();
button=new JButton("Track");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
System.out.println("Hey");
}
});
}
public Component getListCellRendererComponent(JList list, Object value, int index,boolean isSelected, boolean cellHasFocus)
{
it=(item)list.getModel().getElementAt(index);
text.setText(it.tex);
return this;
}
public void paintComponent(Graphics g)
{
this.add(text);
this.add(button);
this.setVisible(true);
}
public Dimension getpreferredSize(){
Font font=UIManager.getDefaults().getFont("JLabel.Font");
Graphics g=getGraphics();
FontMetrics fm=g.getFontMetrics(font);
return new Dimension(fm.stringWidth(it.tex)+button.getWidth(),fm.getHeight()>button.getWidth()?fm.getHeight():button.getWidth());
}
}
但是当我点击它时按钮没有响应。我错过了什么?
谢谢
【问题讨论】:
-
如需尽快获得更好的帮助,请发布SSCCE。此外,在使用代码格式化时,请注意查看输出。最后一个
}未格式化。 -
请学习java命名约定并遵守它们。