Hallo Gemeinde,
das Anliegen ist ein bisschen kompliziert:
1. Ich habe einen JFrame (MainWindow), in dem ein JPanel (inner) liegt, das wiederum 100 kleine JPanels (die aus mehreren Elementen bestehen) in besonderer Anordnung enthält. Die kleinen Panels werden über eine spezielle Klasse (pages) erzeugt, und ohne Layout in das darüberliegende Panel (inner) direkt gesetzt.
Setze ich dieses Panel (inner) in einen JFrame, wird alles korrekt angezeigt.
Mein Problem: Ich möchte dem Fenster Scrollbalken spendieren, doch sobald ich die beiden auskommentierten Zeilen (siehe Quelltext) einbaue, verschwindet mein schönes Panel mit all seinen Kindern. Was genau schief geht, sehe ich leider nicht. Ich habe diverse Layoutmanager für die innere Box probiert - kein Erfolg.
Besonders merkwürdig: Ich habe probiert, das inner JPanel in ein darüberliegendes Panel zu adden ( "add(p);") aber dann verschwindet meine Anzeige ebenfalls.
Weiß jemand Rat?
Gruß
iFlash
das Anliegen ist ein bisschen kompliziert:
1. Ich habe einen JFrame (MainWindow), in dem ein JPanel (inner) liegt, das wiederum 100 kleine JPanels (die aus mehreren Elementen bestehen) in besonderer Anordnung enthält. Die kleinen Panels werden über eine spezielle Klasse (pages) erzeugt, und ohne Layout in das darüberliegende Panel (inner) direkt gesetzt.
Setze ich dieses Panel (inner) in einen JFrame, wird alles korrekt angezeigt.
Mein Problem: Ich möchte dem Fenster Scrollbalken spendieren, doch sobald ich die beiden auskommentierten Zeilen (siehe Quelltext) einbaue, verschwindet mein schönes Panel mit all seinen Kindern. Was genau schief geht, sehe ich leider nicht. Ich habe diverse Layoutmanager für die innere Box probiert - kein Erfolg.
Besonders merkwürdig: Ich habe probiert, das inner JPanel in ein darüberliegendes Panel zu adden ( "add(p);") aber dann verschwindet meine Anzeige ebenfalls.
Weiß jemand Rat?
Code:
public class MainWindow extends JFrame {
JScrollPane scrollpane;
public MainWindow () {
super("Flatplan 0.02");
JMenuBar menue = new JMenuBar();
JMenu mFile = new JMenu("Datei");
JMenuItem iNew = new JMenuItem("Neue Datei");
JMenuItem iOpen = new JMenuItem("Öffnen...");
setJMenuBar(menue);
menue.add(mFile);
mFile.add(iNew);
mFile.add(iOpen);
JPanel p = new JPanel( null );
JPanel inner = new JPanel ( null );
Page[] pages = new Page[400];
setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE );
initializePages( pages );
for ( int i = 0; i < 100; inner.add(pages[i++]) ) pages[i].setSize( 50,90 );
p.add (inner );
add( p); <--------------- Warum geht das nicht?
// scrollpane = new JScrollPane ( p );
ALTERNATIV:
// scrollpane = new JScrollPane ( inner );
// add(scrollpane, BorderLayout.CENTER);
setSize(1024,768 );
setVisible( true);
}
Gruß
iFlash