Witam,
Problemem jest ustawienie ActionListenera, klasa renderująca rysuje ok ale pozycji w liście nie da się zaznaczyć. Moje pytanie to gdzie i jak umieścić listenera.
oto kod:
public Component getTableCellRendererComponent(final JTable jtable, Object o, boolean isSelected, boolean bln1, int row, int column) {
if (o != null) {
dietki.addAll((ArrayList<DietyPostepowe>) o);
wysokosc = dietki.size();
}
ustawTablice((ArrayList<DietyPostepowe>) o);
listaPrzypisanych.addListSelectionListener(new ListSelectionListener(){
@Override
public void valueChanged(ListSelectionEvent evt) {
wybranaDieta=dietki.get(listaPrzypisanych.getSelectedIndex());
}
});
listaPrzypisanych.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent evt){
if(evt.getClickCount()==2){
String nazwaDiety = "", textDiety = "";
WyswietlDiete wyswietl = new WyswietlDiete((JFrame) jtable.getParent().getParent(), nazwaDiety, textDiety);
wyswietl.setVisible(true);
}
}
@Override
public void mousePressed(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void mouseReleased(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void mouseEntered(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
@Override
public void mouseExited(MouseEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
});
komponent = listaPrzypisanych;
if (isSelected) {
ustawTablice((ArrayList<DietyPostepowe>) o);
listaPrzypisanych.setForeground(jtable.getSelectionForeground());
listaPrzypisanych.setBackground(jtable.getSelectionBackground());
} else {
// jtable.setRowHeight(row, wysokosc);
listaPrzypisanych.setForeground(jtable.getForeground());
listaPrzypisanych.setBackground(jtable.getBackground());
}
return komponent;
}
W założeniu miało to działać tak, że po podwójnym kliknięciu otworzy się okno dialogowe zaimplementowane w klasie WyświetlDiete jednak lista w ogóle nie reaguje. Dzięki za pomoc. Pozdrawiam Kamil