|
| JTable spørgsmål... Fra : Simon [2700] |
Dato : 13-04-05 15:20 |
|
Hej,
Jeg skal lave en oversigt over nogle overvågede maskiner og deres services,
og tænkte det var smart at vise i en JTable,
1)
men hvordan får jeg den til at autosize column bredden ? jeg har prøvet med
serverTable.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
Der ikke ser ud til at have nogen indflydelse, jeg synes ikke der er andre
der ser ud til at være den rigtige..
- Skal en evt løsning kaldes hver gang jeg gerne vil have den til at resize
columns så de passer, eller gør den
det automatisk når den er sat til (er det overhovedet muligt ?)..
2)
Hvordan får jeg den til at vise column navne øverst (om muligt også gerne
selvom der scrolles verticalt?) ?
jeg fandt et eksempel jeg har arbejdet udfra der siger noget i retning af
JTable table = new JTable(columnNames, data);
hvor columnNames er et string array, og data er et 2D string array...
men der vises ingen navne på kolonnerne... :(
på forhånd tak for hjælpen !
mvh.Simon
| |
Thomas Thorndahl (14-04-2005)
| Kommentar Fra : Thomas Thorndahl |
Dato : 14-04-05 13:24 |
|
Hej Simon,
"Simon [2700]" <devnull@linux.org> skrev i en meddelelse
news:425d2a70$0$204$edfadb0f@dread11.news.tele.dk...
> 2)
> Hvordan får jeg den til at vise column navne øverst (om muligt også gerne
> selvom der scrolles verticalt?) ?
> JTable table = new JTable(columnNames, data);
Jeg mener at du laver tabellen korrekt, men en kolonne-overskrifterne kommer
ikke automatisk på idet de ligger i en komponent for sig selv. Dvs. de ikke
indgår i JTable'ens visning. De kan derimod hentes ud med
getTableHeader()-metoden og placeres ovenover selve JTabe'en. En nemmere
måde, især hvis du alligevel skal have scrollbars, at pakke din JTable ind i
en JScrollPane og placere scrollpane'en på det panel du viser, istedet for
tabel-komponenten. Kunne se nogenlunde således ud:
JTable table = new JTable(columnNames, data);
JScrollPane scrollp = new JScrollPane(table);
panel.add(scrollp, BorderLayout.CENTER);
Kan desværre ikke komme med noget præcist forslag til auto-resize af
kolonnerne, da jeg selv af og til også selv har problemer her og endnu ikke
har fundet en entydig løsning. Typisk har jeg tvunget enkelte kolonner til
at have en bestemt minimum eller maximum størrelse, hvorefter resten
automatisk har udvidet sig så tabellen stadig fylder dens plads ud. Du kan
rette kolonnestørrelser således:
table.getColumnModel().getColumn(n).setMinWidth(size); // Eller
setMaxWidth(y)
Hvis du er heldig, løser JScrollPane'en dog autoresize problemet så du ikke
behøver at rode manuelt med størrelserne (bliver som regel noget snask).
Mvh
Thomas Thorndahl
| |
Simon [2700] (15-04-2005)
| Kommentar Fra : Simon [2700] |
Dato : 15-04-05 06:11 |
|
> Hvis du er heldig, løser JScrollPane'en dog autoresize problemet så du
> ikke behøver at rode manuelt med størrelserne (bliver som regel noget
> snask).
tak for svarene afprøver dem senere idag !
mvh.SImon
| |
|
|