Veröffentlicht 19. Juli 200520 j Hi, einen hab ich noch Man nehme einen JFrame und adde einen JPanel mit der Hintergrundfarbe Schwarz. Auf dieses Panel packt man nun einen JScrollPane, der eine Tabelle enthält, welche dynamisch befüllt wird. Die Hintergrundfarbe von ScrollPane und Tabelle ist ebenfalls auf Schwarz gesetzt. Wenn genug Zeilen in der Tabelle sind, sodass man drin rumscrollen kann, ist alles gut. Hat man aber zum Beispiel nur eine Zeile in der Tabelle, so bleibt der Rest des ScrollPanes leer, wird aber NICHT schwarz, wie man eigentlich annehmen könnte. Meine Vermutung ist, dass es Look & Feel abhängig ist, ob man die Hintergrundfarbe eines JScrollPanes beeinflussen kann, sicher weiß ich es aber nicht. Habe diverse L&Fs ausprobiert, bei keinem ging es. Nun meine Frage: kennt jemand ein L&F, bei dem es geht, oder muss ich meine Tabelle immer so weit mit leeren, nicht editierbaren Zeilen auffüllen, dass ein Scrollbalken erscheint und die Hintergrundfarbe vom JTable das Problem löst?
19. Juli 200520 j Der Trick liegt darin JScrollPane und JViewPort auf opaque=false zu setzen, dann klappts: public static void main(String[] args) throws Exception { JTable table = new JTable(10, 2); JScrollPane scrollPane = new JScrollPane(table); [b]scrollPane.getViewport().setOpaque(false); scrollPane.setOpaque(false);[/b] JPanel panel = new JPanel(new BorderLayout()); panel.setBackground(Color.BLACK); panel.add(scrollPane); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); frame.setLocationRelativeTo(null); frame.setContentPane(panel); frame.setVisible(true); }
19. Juli 200520 j Danke für die schnelle Hilfe! Auf scrollPane.setOpaque(false); war ich auch gekommen - und dann ging das große Kopfzerbrechen los. Du hast es echt drauf perdi, Respekt!
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.