G
Guest
Gast
Hallo,
Habe ein Problem mit meinem ListCellRenderer.
Ich will im CellRenderer auf ein ActionCommand reagieren, doch es klapt nicht.
Hier mal mein Code:
Falls einer weiß wie es richtig funktioniert bzw. weiß wie es besser geht - bitte posten!
Danke schonmal
Habe ein Problem mit meinem ListCellRenderer.
Ich will im CellRenderer auf ein ActionCommand reagieren, doch es klapt nicht.
Hier mal mein Code:
Code:
public class JReminderListCellRenderer
implements ListCellRenderer{
private JList list;
/**
* Creates a new instance of JReminderListCellRenderer
*/
public JReminderListCellRenderer() {
}
private void onCheck(ActionEvent evt) {
Remind r = (Remind)list.getSelectedValue();
r.invertIsDone();
}
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
this.list = list;
Remind r = (Remind)value;
JPanel p = new JPanel(new BorderLayout());
JButton btCheck = new JButton("x");
btCheck.setPreferredSize(new Dimension(32, 32));
btCheck.setFont(new Font(btCheck.getFont().getFontName(), btCheck.getFont().getStyle(), 5));
btCheck.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
onCheck(e);
}
});
JLabel lbText = new JLabel(r.getText());
p.add(btCheck, BorderLayout.WEST);
p.add(lbText, BorderLayout.CENTER);
if(isSelected) {
p.setBorder(new LineBorder(new Color(255, 102, 0), 2));
}
if(r.getIsDone()) {
Font cur = lbText.getFont();
lbText.setFont(new Font(cur.getFontName(), Font.ITALIC, cur.getSize()));
btCheck.setText("-");
}
return p;
}
Falls einer weiß wie es richtig funktioniert bzw. weiß wie es besser geht - bitte posten!
Danke schonmal