2016-04-15 13 views
0

Die JTable erscheint nicht im Formular.
Dies ist ein Teil meines Code:JTable verschwindet nach der Verwendung von JScrollPane

table = new JTable(tasks, names); 
table.setBounds(10, 43, 408, 455); 
contentPane.add(table); 
JScrollPane scroll = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 
contentPane.add(scroll); 

Aber wenn ich die JScrollPane entfernt, scheint es.
EDIT: Ich habe AbsoluteLayout in Eclipse Drag & Drop-Funktion verwendet.

Antwort

3

contentPane.add(table); nicht erforderlich ist, und es sieht aus wie Sie ein null Layout verwenden, die wahrscheinlich die Tatsache berücksichtigt, dass die Tabelle nicht angezeigt (wie die JScrollPane eine Standardgröße von 0x0

null Vermeiden Sie hat Layouts, pixelperfekte Layouts stellen eine Illusion innerhalb des modernen UI Designs dar. Es gibt zu viele Faktoren, die die individuelle Größe von Komponenten beeinflussen, von denen Sie keine Kontrolle haben.Swing wurde entwickelt, um mit Layoutmanagern im Kern zu arbeiten, und diese zu beseitigen kein Ende der Probleme und Probleme, die Sie mehr und mehr Zeit verbringen werden, um zu versuchen,

zu beheben

Werfen Sie einen Blick auf Laying Out Components Within a Container für weitere Details

+0

Ich habe AbsoluteLayout in Eclipse Drag & Drop verwendet. –

+1

* "Ich verwendete AbsoluteLayout .." * Ja. Das ist schlimmer als ein "Null" -Layout. Es ist genauso schlecht (funktional) wie ein "Null" -Layout, gibt dem Programmierer jedoch den Eindruck, dass er "absolute" Kontrolle über Komponentenplatzierung und -grenzen hat - wenn nicht. Oder anders gesagt: Java-GUIs müssen auf verschiedenen Betriebssystemen, Bildschirmgrößen, Bildschirmauflösungen usw. mit unterschiedlichen PLAFs in verschiedenen Locales arbeiten. Als solche sind sie nicht für ein perfektes Pixel-Layout geeignet. Verwenden Sie stattdessen Layout-Manager oder [Kombinationen davon] (http://stackoverflow.com/a/5630271/418556) .. –

+1

.. zusammen mit Layout-Padding und Rahmen für [Leerraum] (http://stackoverflow.com/a/17874718/418556). –