Hallo,
hab ein JTree mit verschiedenen Childs usw. Diesem JTree habe ich auch einen eigenen Renderer zugewiesen (der gibt mir ein Panel mit zwei Labels zurück (eines für ne Grafik und eines für den Text, der eben farbig hinterlegt werden soll).
Wenn ich per Mausklick eine Node anklicke, so wird auch schön brav das selektierte Element farbig hinterlegt.
Wenn ich aber per Quellcode selektiere, wird es das nicht (irgendwie ruft er mir den Renderer gar nicht auf, obwohl ich ein repaint noch hinzugefügt habe)....:
danke
christoph
hab ein JTree mit verschiedenen Childs usw. Diesem JTree habe ich auch einen eigenen Renderer zugewiesen (der gibt mir ein Panel mit zwei Labels zurück (eines für ne Grafik und eines für den Text, der eben farbig hinterlegt werden soll).
Wenn ich per Mausklick eine Node anklicke, so wird auch schön brav das selektierte Element farbig hinterlegt.
Wenn ich aber per Quellcode selektiere, wird es das nicht (irgendwie ruft er mir den Renderer gar nicht auf, obwohl ich ein repaint noch hinzugefügt habe)....:
Code:
...
jTR_Liste.setSelectionRow(i);
jTR_Liste.scrollRowToVisible(i);
jTR_Liste.repaint();
...
class Msttree_Renderer implements TreeCellRenderer
{
private JPanel jPN = null;
private JLabel jLBL_Symbol = null;
private JLabel jLBL_Text = null;
public Msttree_Renderer()
{
jPN = new JPanel();
jPN.setLayout(null);
jPN.setBounds(0, 0, 300, 25);
jPN.setBackground(Color.white);
jLBL_Symbol = new JLabel();
jLBL_Symbol.setOpaque(true);
jLBL_Symbol.setBounds(0, 7, 12, 10);
jLBL_Text = new JLabel();
jLBL_Text.setBounds(18, 3, 275, 20);
}
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected,
boolean expanded, boolean leaf, int row, boolean hasFocus)
{
//Markieren des selected Eintrages
if (hasFocus == true)
{
jLBL_Text.setOpaque(true);
jLBL_Text.setBackground(f.markierungsblau());
}
else
{
jLBL_Text.setOpaque(true);
jLBL_Text.setBackground(Color.white);
}
jPN.add(jLBL_Symbol);
jPN.add(jLBL_Text);
return jPN;
danke
christoph