B
Beren
Gast
Hallo,
ich möchte einen Forschrittsdialog basteln, in dem der Benutzer über den Knopf "Details >>" ein Logfenster einblenden kann, das dann unterhalb des Fortschrittsbalken aber im gleichen JPanel angezeigt werden soll.
Das Problem: Manchmal funktioniert es und die angezeigte JTextPane hat die richtige Größe, aber meistens "zerschießt" mir die TextPane die darüberliegende ProgressBar...
Wieso passiert das? Irgendwelche Ideen? Danke!
Hier mal mein Code-"Schnippsel": Dieser wird im ActionListener vom "Details"-Button ausgeführt. Das "logPanel" ist ein JPanel mit BorderLayout. In "North" liegt die JProgressBar und im "Center" eben die textPane... Oder auch weit über die Komponente hinaus. Manchmal passiert es auch, dass die vertikale ScrollBar _weit_ über die JPanel hinausragt und der obere Pfeil schon gar nicht mehr sichtbar ist... Was mache ich falsch?
Danke für die Hilfe!
Philipp[/code]
ich möchte einen Forschrittsdialog basteln, in dem der Benutzer über den Knopf "Details >>" ein Logfenster einblenden kann, das dann unterhalb des Fortschrittsbalken aber im gleichen JPanel angezeigt werden soll.
Das Problem: Manchmal funktioniert es und die angezeigte JTextPane hat die richtige Größe, aber meistens "zerschießt" mir die TextPane die darüberliegende ProgressBar...
Wieso passiert das? Irgendwelche Ideen? Danke!
Hier mal mein Code-"Schnippsel": Dieser wird im ActionListener vom "Details"-Button ausgeführt. Das "logPanel" ist ein JPanel mit BorderLayout. In "North" liegt die JProgressBar und im "Center" eben die textPane... Oder auch weit über die Komponente hinaus. Manchmal passiert es auch, dass die vertikale ScrollBar _weit_ über die JPanel hinausragt und der obere Pfeil schon gar nicht mehr sichtbar ist... Was mache ich falsch?
Code:
showingDetails = !showingDetails;
if (showingDetails) {
detailButton.setText("<< Details");
JTextPane textPane = new JTextPane();
textPane.setAutoscrolls(true);
textPane.setContentType("text/html");
textPane.setText("<html><body>" + messageLines.toString() + "</body></html>");
Dimension d = new Dimension(250, 190);
textPane.setPreferredSize(d);
// Globale Variable: JScrollPane textScrollPane;
textScrollPane = new JScrollPane(textPane, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
setSize(350, 450); // Die Klasse ist von JDialog abgeleitet
logPanel.add(textScrollPane, BorderLayout.CENTER);
setLocation(UIUtils.centerOnScreen(350, 450));
logPanel.revalidate();
logPanel.repaint();
} else {
detailButton.setText("Details >>");
setSize(350, 160);
logPanel.remove(textScrollPane);
setLocation(UIUtils.centerOnScreen(350, 160));
logPanel.revalidate();
logPanel.repaint();
}
Danke für die Hilfe!
Philipp[/code]