Avatar billede kamak Praktikant
16. februar 2004 - 12:33 Der er 7 kommentarer og
1 løsning

Tables. cellerne skal ikke være lige store

Jeg er ved at lave en table der viser filerne i en given mappe.
Jeg har lavet følgene kode der først henter en liste med filobjekter. Herefter laver jeg et array til header og et dobbelt array til indhold. I forløkken ligger jeg informationerne ind i det dobbelte array. Til sidst kalder jeg JTable med de 2 array.
Jeg for også en fin tabel men mit problem er at cellerne er ligestore. foreksempel så består den første kolonne af et nummer og den næste kolonne af navnet. Jeg vil gerne have af kolonnen med nummeret bliver meget smal og der bliver mere plads til filnavnet så dette kan læses.

KODE:

listClient = con.getClientFiles("Klient");
           
String[] header = {"#", "Name", "Size", "Last modified", "Locked"};
           
String name = "default";
long size = 0;
long lastModified = -1;
boolean locked = true;
           
Object[][] data = new Object[listClient.size()][5];
             
for (int j = 0; j<listClient.size(); j++ )
{
    name = (listClient.get(j)).getFile().getName();
    size = (listClient.get(j)).getFile().length();
    lastModified = (listClient.get(j)).getFile().lastModified();
    locked = (listClient.get(j)).isLocked();
                           
    data [j][0] = (""+j);
    data [j][1] = (""+name);
    data [j][2] = (""+size);
    data [j][3] = (""+lastModified);
    data [j][4] = (""+locked);           
}       
       
tableClient = new JTable(data, header);
tableClient.setPreferredScrollableViewportSize(new Dimension(490,500));
tableClient.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
scrollPaneClient = new JScrollPane(tableClient);
Avatar billede jimlars Nybegynder
16. februar 2004 - 13:12 #1
Du kunne prøve noget i stil med:

TableColumnModel columnMod  = tableClient.getColumnModel();
columnMod.getColumn(0).setMinWidth(10);
columnMod.getColumn(0).setMaxWidth(100);

I det sætter du min og max på de enkelte kolonner.
Avatar billede _carsten Nybegynder
16. februar 2004 - 13:14 #2
Sådan kan du sætte størrelsen på en kolonne

TableColumnModel tcm = getColumnModel();
TableColumn tableColumn = tableClient.getColumn(0);
tableColumn.setPreferredSize(20);
tableColumn.setMaxWidth(25);
tableColumn.setMinWidth(15);
Avatar billede _carsten Nybegynder
16. februar 2004 - 13:31 #3
Nå - for sent og lidt forkert

Denne behøves ikke
TableColumnModel tcm = getColumnModel();
Avatar billede kamak Praktikant
16. februar 2004 - 13:58 #4
Jeg får følgende fejl:

FileGUI.java:112: cannot resolve symbol
symbol  : class TableColumnModel 
location: class FileGUI

    TableColumnModel columnMod = tableClient.getColumnModel();
          ^
1 error
Avatar billede _carsten Nybegynder
16. februar 2004 - 14:01 #5
Du mangler at import af javax.swing.table.TableColumnModel
Avatar billede kamak Praktikant
16. februar 2004 - 14:03 #6
JA - mange tak. Jeg have importeret javax.swing.*; og troede den anden fulgte med. nu virker det. tak for hjælpen
Avatar billede _carsten Nybegynder
28. februar 2004 - 22:24 #7
Point ??
Avatar billede kamak Praktikant
28. februar 2004 - 23:06 #8
sorry jeg troede jeg havde accepteret
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