Hi *
wenn ich in einer JTable den TableRowSorter benutze, habe ich im TableHeader die Funktion des Sortierens incl der Gui-Darstellung (Icon ASC/DESC).
Um die Überschrift in einer Table zu beeinflussen schreibt man sich eigene Renderer.
Ich hab jetzt ein MultiLineTableRenderer
[Java]
public class MultiLineHeaderRenderer extends JList implements TableCellRenderer
{
public MultiLineHeaderRenderer()
{
setForeground(UIManager.getColor("TableHeader.foreground"));
setBackground(UIManager.getColor("TableHeader.background"));
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
ListCellRenderer renderer = getCellRenderer();
((JLabel) renderer).setHorizontalAlignment(JLabel.CENTER);
setCellRenderer(renderer);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
setFont(table.getFont());
String str = (value == null) ? "" : value.toString();
BufferedReader br = new BufferedReader(new StringReader(str));
String line;
Vector<String> v = new Vector<String>();
try
{
while ((line = br.readLine()) != null)
{
v.addElement(line);
}
}
catch (IOException ex)
{
//do it
}
setListData(v);
return this;
}
}
[/Java]
aber daruch verliere ich natürlich jetzt die Funktionalität/GUI-Darstellung des TableRowSorters.
Wie wäre das Problem zu lösen ?
wenn ich in einer JTable den TableRowSorter benutze, habe ich im TableHeader die Funktion des Sortierens incl der Gui-Darstellung (Icon ASC/DESC).
Um die Überschrift in einer Table zu beeinflussen schreibt man sich eigene Renderer.
Ich hab jetzt ein MultiLineTableRenderer
[Java]
public class MultiLineHeaderRenderer extends JList implements TableCellRenderer
{
public MultiLineHeaderRenderer()
{
setForeground(UIManager.getColor("TableHeader.foreground"));
setBackground(UIManager.getColor("TableHeader.background"));
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
ListCellRenderer renderer = getCellRenderer();
((JLabel) renderer).setHorizontalAlignment(JLabel.CENTER);
setCellRenderer(renderer);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
setFont(table.getFont());
String str = (value == null) ? "" : value.toString();
BufferedReader br = new BufferedReader(new StringReader(str));
String line;
Vector<String> v = new Vector<String>();
try
{
while ((line = br.readLine()) != null)
{
v.addElement(line);
}
}
catch (IOException ex)
{
//do it
}
setListData(v);
return this;
}
}
[/Java]
aber daruch verliere ich natürlich jetzt die Funktionalität/GUI-Darstellung des TableRowSorters.
Wie wäre das Problem zu lösen ?