|
| Farver i JTables Fra : The MaXx |
Dato : 17-04-01 16:49 |
|
Hej gruppe.
Jeg arbejder med en "Liste" i en JTable, hvor jeg gerne vil have enten
Foreground (Skriften), eller Background (Baggrunden) til at være forskellig
farve for de forskellige række, baseret på en værdi i rækken.
Er dette muligt?
Hvis ikke hvordan laver jeg så sådan en liste?
Her er den Tabel jeg har lavet og som jeg gerne vi have til at kunne det med
farverne.
public class Tabel extends AbstractTableModel
{
private Object[][] data;
private String[] columnNames;
public Tabel (Object[][] data, String[] columnNames)
{
this.data = data;
this.columnNames = columnNames;
}
public int getColumnCount()
{
return columnNames.length;
}
public int getRowCount()
{
return data.length;
}
public String getColumnName(int col)
{
return columnNames[col];
}
public Object getValueAt(int row, int col)
{
return data[row][col];
}
public Class getColumnClass(int c)
{
return getValueAt(0, c).getClass();
}
public boolean isCellEditable(int r, int c)
{
return false;
}
}
The MaXx
| |
Niels Bech Nielsen (17-04-2001)
| Kommentar Fra : Niels Bech Nielsen |
Dato : 17-04-01 23:20 |
|
Du skal lave en TableCellRenderer til din tabel. Det er den, som har opgaven
med at tegne tabellen.
F.eks.
public class MyCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object
value,
boolean isSelected, boolean hasFocus, int row,
int column) {
Component comp = super.getTableCellRendererComponent(table, value,
isSelected,
hasFocus, row, column);
Color color = (row %2 == 0) ? Color.cyan : Color.yellow;
comp.setBackground(color);
return comp;
}
}
Sådan ca. det er taget ud af hovedet.Hvis det er andet du mener, så husk
renderen bliver kaldt for hver celle, men du kender tabellen og x og y, så
du kan altid finde frem til det du ønsker.
--
/Niels Bech Nielsen -- Logical
SCJ2P - ** Sun Certified Java 2 Programmer **
"The MaXx" <the_maxx@email.dk> wrote in message
news:9bhonj$lqa$1@news.cybercity.dk...
> Hej gruppe.
>
> Jeg arbejder med en "Liste" i en JTable, hvor jeg gerne vil have enten
> Foreground (Skriften), eller Background (Baggrunden) til at være
forskellig
> farve for de forskellige række, baseret på en værdi i rækken.
>
> Er dette muligt?
> Hvis ikke hvordan laver jeg så sådan en liste?
> Her er den Tabel jeg har lavet og som jeg gerne vi have til at kunne det
med
> farverne.
>
> public class Tabel extends AbstractTableModel
> {
> private Object[][] data;
> private String[] columnNames;
>
> public Tabel (Object[][] data, String[] columnNames)
> {
> this.data = data;
> this.columnNames = columnNames;
> }
>
>
> public int getColumnCount()
> {
> return columnNames.length;
> }
>
> public int getRowCount()
> {
> return data.length;
> }
>
> public String getColumnName(int col)
> {
> return columnNames[col];
> }
>
> public Object getValueAt(int row, int col)
> {
> return data[row][col];
> }
>
> public Class getColumnClass(int c)
> {
> return getValueAt(0, c).getClass();
> }
>
> public boolean isCellEditable(int r, int c)
> {
> return false;
> }
>
> }
>
> The MaXx
>
>
| |
Allan Schmidt (18-04-2001)
| Kommentar Fra : Allan Schmidt |
Dato : 18-04-01 10:13 |
|
> Du skal lave en TableCellRenderer til din tabel. Det er den, som har
opgaven
> med at tegne tabellen.
Mange tak... Det løste mit problem, jeg skal dog lege en del videre med det
før jeg er tilfreds, men du hjalp mit godt på sporet.
The MaXx
| |
|
|