Avatar billede irsild Nybegynder
05. september 2001 - 11:16 Der er 2 kommentarer og
1 løsning

Farver i JTable


Hvordan får en cellrender for en enkelt celle i en JTable? (Det jeg vil er at sætte baggrundsfarven på en enkel celle i en JTable)
Avatar billede vgaard Nybegynder
05. september 2001 - 12:00 #1
Avatar billede logical Nybegynder
06. september 2001 - 19:31 #2
For hver kolonne i din tabel vælger en JTable en CellRenderer component til at tegne alle rækker i den følgende kolonne. Renderer vælges ud fra hvilken type af objekter, der ligger i din tabel (default type er Object).

Du kan godt få fat i din renderer, men da den bruges til at tegne alle rækker, er du mere interesseret i at lave en cellrenderer, der kan sætte baggrundsfarve, når den tegner en bestemt celle.

Et kort eksempel:

class MyRenderer extends DefaultTableCellRenderer {
  public Component getTableCellRendererComponent(JTable table, Object value,
    boolean isSelected, boolean hasFocus, int row, int col) {
    JLabel l = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col);
    if (row == 4 && col == 5)
        l.setBackground(Color.cyan);
    return l;
  }
}

Og så indsætte den i din table:

JTable t = new JTable(....);
t.setDefaultCellRenderer(Object.class, new MyRenderer());

Men som sagt det hele bunder i din implementering af table-model, men prøv om det ikke giver dig en god ide om hvad der skal ske.
Avatar billede irsild Nybegynder
07. september 2001 - 10:11 #3
Det vil jeg prøve at arbejde med.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester