AWT - setSize(..)

Status
Nicht offen für weitere Antworten.

Tallan

Bekanntes Mitglied
Hallo Zusammen,

ich hab ein paar Probleme die Richtige größe meiner komponenten in eine JFrame einzustellen.

Ein vereinfachtes Beispiel :

Ein JFrame beinhaltet ein JMenu ( north ), JToolbar ( center ), JPanel ( south ).

jetzt würde ich gerne der Toolbar sagen wie hoch sie sein darf.
Hierz habe ich toolBar.setSize(x,y); oder aber per new Dimension(x,y) versucht,
leider beides ohne erfolg.

Der JFrame sieht im groben folgendermaßen aus

Code:
public MainFrame()
	{
		setLayout(new BorderLayout());

                ......
		toolBar = new ToolBar(mainFrame);
			toolBar.setFloatable(false); 
			toolBar.setSize(30, 30);
			
		.....

	        


		
			
	
		
		
	getContentPane().add(menuBar, BorderLayout.NORTH);
        getContentPane().add(toolBar, BorderLayout.CENTER); 
        getContentPane().add(jPanel, BorderLayout.SOUTH); 
        
		
	addWindowListener(new WindowClosingAdapter());
		
	pack();
        setVisible(true);

	}

Der JFrame selbst hat keine größenangaben.
Gibt es eine möglichleit nur eine feste Höhe zu definieren und die Breite variabel zu lassen? Und warum wird toolBar.setSize(30, 30); nicht beachtet ?
 

Tallan

Bekanntes Mitglied
nach zahllosen howtos bin ich nicht wircklich weiter, mir ist aber aufgefallen das das borderlayout versucht alles ausser center zu minimieren weshalb ich jetzt die toolbar mit dem panel in ein splitpane gepackt habe und die beide als center geadded habe,... somit stimmt das layout wie ich es haben möchte...

minimal große menuleiste
minimal große toolbar
rest panel

aber die lösung gefällt mir absolut nicht.
 

diggaa1984

Top Contributor
aso aber was mir grad auffällt .. du hast sowas wie: JFrame.addJMenuBar und addJToolbar oder dergleichen .. die landen dann nicht auf dem Contentpane mit dem Borderlayout sondern oberhalb davon
 

Tallan

Bekanntes Mitglied
aso aber was mir grad auffällt .. du hast sowas wie: JFrame.addJMenuBar und addJToolbar oder dergleichen .. die landen dann nicht auf dem Contentpane mit dem Borderlayout sondern oberhalb davon

Code:
        getContentPane().add(menuBar, BorderLayout.NORTH);
        getContentPane().add(toolBar, BorderLayout.CENTER); 
        getContentPane().add(jPanel, BorderLayout.SOUTH);
 

diggaa1984

Top Contributor
gut halbe wahrheiten von mir ...
Java:
public class MainFrame extends JFrame {

    [...]

   this.setJMenuBar(setupJMenuBar());
   this.add(setupJToolBar(), BorderLayout.NORTH);
   
    [...]
}
so gehts eher
 

Tallan

Bekanntes Mitglied
gut halbe wahrheiten von mir ...
Java:
public class MainFrame extends JFrame {

    [...]

   this.setJMenuBar(setupJMenuBar());
   this.add(setupJToolBar(), BorderLayout.NORTH);
   
    [...]
}
so gehts eher

stimmt damit gehts auch wobei das auch "nur" eine andere version ist das Layout zu umgehen bzw um eins zu versetzen, die size einstellungen haben damit noch lange nichts zu melden, aber wenigstens ist das layout jetzt so wie es sein soll, daher vielen dank
 

diggaa1984

Top Contributor
The components are laid out according to their preferred sizes and the constraints of the container's size

gehts damit, das steht beim BorderLayout .. also
Java:
toolbar.setPreferredSize(new Dimension(1,30));
ich würde vermuten das die 1 als Breite egal ist, da durch das BorderLayout der North-Teil eh so breit gezogen wird wie nötig um den Rest des Layouts darzustellen.

aber die 30 als Höhe sollten so übernommen werden. Probiers mal
 

Tallan

Bekanntes Mitglied
gehts damit, das steht beim BorderLayout .. also
Java:
toolbar.setPreferredSize(new Dimension(1,30));
ich würde vermuten das die 1 als Breite egal ist, da durch das BorderLayout der North-Teil eh so breit gezogen wird wie nötig um den Rest des Layouts darzustellen.

aber die 30 als Höhe sollten so übernommen werden. Probiers mal

das funktionierte leider bei CENTER nicht weder min max noch pref. size daher die lösung
die menubar in den frame zu hängen womit nur noch 2 komponenten bleiben und die formals 3te nun im CENTER liegt.
 

diggaa1984

Top Contributor
aso, dachte hast es immer noch anders ^^ ... ne center wird über alles gestreckt .. vielleicht geht ne maximum-size
 

sibianu

Mitglied
Und wenn man das alles ohne Layout macht, so dass man selber alle Positionen und Größen bestimmt? so schwer ist das auch nicht. ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P LayoutManager TextField.setSize(); in einem FlowLayout AWT, Swing, JavaFX & SWT 3
T LayoutManager GridLayout panel.setSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
A trotz setSize keine breite AWT, Swing, JavaFX & SWT 4
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 7
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 2
H AWT setSize()/setBounds() und pack() kombinieren!? AWT, Swing, JavaFX & SWT 3
B setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 2
ABstraCT JOptionPane setSize ? AWT, Swing, JavaFX & SWT 6
B setSize() AWT, Swing, JavaFX & SWT 2
T JFrame#setSize trotz maximiert AWT, Swing, JavaFX & SWT 4
P Ignoriert mein setSize()? AWT, Swing, JavaFX & SWT 2
B JFrame flackern durch setSize() AWT, Swing, JavaFX & SWT 8
T setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 5
G tree.setSize tut nicht AWT, Swing, JavaFX & SWT 5
K setSize und setLocation geht nicht AWT, Swing, JavaFX & SWT 8
M Layout / setSize Problem AWT, Swing, JavaFX & SWT 15
A setSize nötig um Elemente sichtbar zu machen? AWT, Swing, JavaFX & SWT 3
T setSize() fertig AWT, Swing, JavaFX & SWT 5
T setSize-Problem in FileDialog AWT, Swing, JavaFX & SWT 4
W JFrame setSize() und setBounds() AWT, Swing, JavaFX & SWT 2
D JSPinner Größe verändern - setSize() funktioniert nicht AWT, Swing, JavaFX & SWT 7
R nach setSize() wird JLabel nicht dargestellt AWT, Swing, JavaFX & SWT 3
Y JTree setSize() AWT, Swing, JavaFX & SWT 5
J setSize von Panelklasse aufrufen AWT, Swing, JavaFX & SWT 9
A JTabbedPane setSize funktioniert nicht ! AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen


Oben