BigAndi Geschrieben 19. Juli 2005 Geschrieben 19. Juli 2005 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? Zitieren
perdian Geschrieben 19. Juli 2005 Geschrieben 19. Juli 2005 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); } Zitieren
BigAndi Geschrieben 19. Juli 2005 Autor Geschrieben 19. Juli 2005 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! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.