Hi an alle!
Ich möchte gerne 2 verschiedene Selektionen der JTable wie folgt einbauen:
- Mit MouseMoved soll jede ganze Zeile der JTable mit der Farbe "Hellgrün" gezeichnet werden!
- Mit MouseClicked soll die gewählte Zeile der JTable mit der Farbe "Gelb" gezeichnet werden!
Mit MouseMotionListener, MouseListener und DefaultTableCellRenderer habe ich mich soweit vorbereitet.
Das Problem ist nur, dass die gelbe Selektion durch MouseMoved immer wieder verschwindet. Mir fehlet ein paar Code im DefaultTableCellRenderer, damit die gelbe Selektion während der MouseMoved nicht verschwinden darf.
Hier ist mein Code:
DefaultTableCellRenderer
mouseClicked
mouseMoved
Gruß
Iron Monkey
Ich möchte gerne 2 verschiedene Selektionen der JTable wie folgt einbauen:
- Mit MouseMoved soll jede ganze Zeile der JTable mit der Farbe "Hellgrün" gezeichnet werden!
- Mit MouseClicked soll die gewählte Zeile der JTable mit der Farbe "Gelb" gezeichnet werden!
Mit MouseMotionListener, MouseListener und DefaultTableCellRenderer habe ich mich soweit vorbereitet.
Das Problem ist nur, dass die gelbe Selektion durch MouseMoved immer wieder verschwindet. Mir fehlet ein paar Code im DefaultTableCellRenderer, damit die gelbe Selektion während der MouseMoved nicht verschwinden darf.
Hier ist mein Code:
DefaultTableCellRenderer
Code:
public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column )
{
c = super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column);
l = (JLabel) c;
l.setOpaque(true);
l.setHorizontalAlignment( colData[ column ].m_alignment );
if( isSelected )
l.setBackground( table.getSelectionBackground() );
else
{
if( row % 2 == 0 )
l.setBackground( LABEL_COLOR_HELLBLAU_2 );
else
l.setBackground( LABEL_COLOR_WHITE );
}
return l;
}
mouseClicked
Code:
if( e.getButton() == MouseEvent.BUTTON1 )
{
Object source = e.getSource();
if( source instanceof JTable )
{
JTable table = ((JTable) source);
int row = table.rowAtPoint( e.getPoint() );
table.setRowSelectionInterval( row, row );
table.setSelectionBackground( LABEL_COLOR_YELLOW );
}
}
mouseMoved
Code:
Object source = e.getSource();
if( source instanceof JTable )
{
JTable table = ((JTable) source);
int row = table.rowAtPoint( e.getPoint() );
table.setRowSelectionInterval( row, row );
table.setSelectionBackground( TABLE_MOUSE_MOVE_COLOR_GREEN );
}
Gruß
Iron Monkey