Komponenten andordnen

Status
Nicht offen für weitere Antworten.
J

Joe1243

Gast
Mein Problem ist, dass ich jedesmal ein rießen Problem damit habe die Panel und auch die anderen Komponenten so anzuordnen, wie ich es mir vorstelle. Der untere Code zum Beispiel: Ich möchte nur dieses grün gefärbte JPanel in die Mitte ContentPanes setzen, jedoch nimmt das JPanel, egal was ich mache, jedesmal das ganze Frame ein. Was mache ich falsch? bzw. wie kann ich meine Komponenten in der Größe anordnen wie ich sie angebe?

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class Painting extends JFrame{
	JPanel surface;
	
	public Painting(String title){
		super(title);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setSize(600,400);
		setPreferredSize(new Dimension(600,400));
		Toolkit kit = Toolkit.getDefaultToolkit();
		setLocation(kit.getScreenSize().width/2-getSize().width/2,
			kit.getScreenSize().height/2-getSize().height/2);
		getContentPane().setLayout(new BorderLayout());
		surface = new JPanel();
		surface.setBackground(Color.green);
		surface.setPreferredSize(new Dimension(100,100));
		getContentPane().add(surface, BorderLayout.CENTER);
		pack();
		setVisible(true);
	}
	
	public static void main(String[] args){
		Painting painting = new Painting("Paint");
	}
}
 

hdi

Top Contributor
Man gibt dem Fenster selber niemals irgendwelche Grössen, sondern nur den einzelnen Komponenten.
Das Fenster kriegt dann nur ein Layout und man addet die Dinge dementsprechend.
pack() checkt auf allen Komponenten, die geaddet wurden, ihre PreferredSize und baut das Fenster
dementsprechend zusammen.Ein

Code:
setLocationRelativeTo(null);

nach dem pack() Aufruf zentriert dir übrigens das Fenster auf dem Bildschirm, d.h. du kannst dir das
mit Toolkit und setLocation auch sparen.

Wenn du das jetzt so machst würdest du aber weiterhin nur ein 100*100 grosses Fenster mit dem grünen
Panel kriegen, ganz einfach weil das das einzige ist, was du geaddet hast.
Du könntest jetzt links, rechts, oben und unten noch weisse Panels adden, um das grüne Panel nur in der Mitte
zu haben.

Man sollte sich aber immer überlegen ob sowas Sinn macht, ich meine wofür willst du ein Panel in der Mitte von
nichts? Dann lass das nichts doch einfach weg.

Ansonsten, aber das solltest du dir nicht angewöhnen, kannst du per Hand Dinge einfach so adden:

Code:
setLayout(null); // wie gesagt, vergiss das lieber wieder gleich...
setSize(400,400); // auch schlecht, hab ich ja vorhin gesagt
JPanel panel = new JPanel();
panel.setBounds(150,150,100,100); // so macht man das dann wenn man ein "null"-Layout hat
// d.h.: obere linke Ecke bei (150,150) und 100 breit, 100 hoch
add(panel);
 

L-ectron-X

Gesperrter Benutzer
Auch für so 'ne Sachen brauchst du dich nicht mit NullLayout abzugeben. Das geht gaaanz einfach mit GridBagLayout.
...und alles bleibt flexibel. ;)
Code:
import java.awt.*;
import javax.swing.*;

public class Painting extends JFrame {
   private JPanel surface;

   public Painting(String title){
      super(title);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setPreferredSize(new Dimension(600, 400));
      
      JPanel intern = new JPanel(new GridBagLayout());
      
      surface = new JPanel();
      surface.setBackground(Color.green);
      surface.setPreferredSize(new Dimension(100, 100));
      intern.add(surface);
      
      getContentPane().add(intern, BorderLayout.CENTER);
      pack();
      setLocationRelativeTo(null);
      setVisible(true);
   }

   public static void main(String[] args){
      Painting painting = new Painting("Paint");
   }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Komponenten, Module, Begrifferklärung Java Basics - Anfänger-Themen 4
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
C Einbinden von Komponenten mit Maven Java Basics - Anfänger-Themen 3
V Alle Komponenten eines JPanels Java Basics - Anfänger-Themen 14
T Optionale Komponenten Java Basics - Anfänger-Themen 8
M GUI- mehrere Komponenten auf Container adden Java Basics - Anfänger-Themen 2
P JavaFX - Komponenten skalieren Java Basics - Anfänger-Themen 16
J Klassen Hilfe bei unbekannten Zeilen bzgl. Klassen / Komponenten Java Basics - Anfänger-Themen 12
I komponenten werden in JFrame nicht richtig angezeigt Java Basics - Anfänger-Themen 1
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
F Platzieren von Komponenten in Swing Applet funktioniert nicht Java Basics - Anfänger-Themen 3
D JFrame, Komponenten verschmiert. Java Basics - Anfänger-Themen 15
N JTable - Zellfarben ändern, GUI-Komponenten in Zellen einfügen Java Basics - Anfänger-Themen 5
M Komponenten irgendwo versteckt? Java Basics - Anfänger-Themen 7
O swing komponenten werden nicht angezeigt Java Basics - Anfänger-Themen 6
MU5T4NG Komponenten in Schleife ansprechen Java Basics - Anfänger-Themen 13
B Tabelle, Größe der Komponenten Java Basics - Anfänger-Themen 2
D Wie genau kann ich in Java Komponenten entwickeln? Java Basics - Anfänger-Themen 6
P Scrollpane mit dynamisch erzeugten Komponenten Java Basics - Anfänger-Themen 3
M Fixe Position von GUI Komponenten ? Java Basics - Anfänger-Themen 9
Weiti Anzeige von komponenten erst bei Mouse-Over Java Basics - Anfänger-Themen 3
N Anordnug der Komponenten mit NetBeans Java Basics - Anfänger-Themen 9
M Obsolete Komponenten feststellen? Java Basics - Anfänger-Themen 3
X GridBagLayout Komponenten Anordnungsproblem Java Basics - Anfänger-Themen 4
L Komponenten in Layoutmanagern zentrieren Java Basics - Anfänger-Themen 5
J Probleme mit Visual Editor Komponenten auf Panel legen Java Basics - Anfänger-Themen 4
K Koordinaten von Swing Komponenten Java Basics - Anfänger-Themen 2
G Komponenten Java Basics - Anfänger-Themen 2
A Komponenten nur sporadisch sichtbar beim starten Java Basics - Anfänger-Themen 2
I Swing-Komponenten-Größe im GridBagLayout beschränken Java Basics - Anfänger-Themen 2
N GridBagLayout: gleichmäßige verteilung von Komponenten Java Basics - Anfänger-Themen 23
S Auf JButtonBar komponenten ausrichten, größe festlegen? Java Basics - Anfänger-Themen 5
S Wie komponenten positionieren? Java Basics - Anfänger-Themen 6
B Komponenten im LayoutManager zentrieren Java Basics - Anfänger-Themen 5
G Seit Java6 wird der Text von komponenten komisch dargestellt Java Basics - Anfänger-Themen 11
Q Beste Komponenten für 3-Schichten-Architektur gesucht Java Basics - Anfänger-Themen 7
T Anderes Fenster öffnen, darin enthaltene Komponenten ändern Java Basics - Anfänger-Themen 2
E Komponenten auf Panel positionieren Java Basics - Anfänger-Themen 3
S Komponenten löschen und ersetzen Java Basics - Anfänger-Themen 2
S Kommunikation zwischen Komponenten in einem JFrame Java Basics - Anfänger-Themen 10
P Abstand vom Rahmen zu Komponenten bestimmen? Java Basics - Anfänger-Themen 3
J Dynamische Größenveränderung der Komponenten verhindern Java Basics - Anfänger-Themen 8
S Alle Komponenten die ich auf die IDE ziehe sind align all Java Basics - Anfänger-Themen 7
B Komponenten einer Zeile, Spalte des GridLayouts hinzufügen Java Basics - Anfänger-Themen 3
M value von Komponenten erhalten Java Basics - Anfänger-Themen 3
G GUI Komponenten Java Basics - Anfänger-Themen 14
M Problem beim ändern von Komponenten während Visible(true) Java Basics - Anfänger-Themen 4
M Bei Swing Komponenten die Farbe ändern? Java Basics - Anfänger-Themen 12
S Benennung von Komponenten bei Swing? Java Basics - Anfänger-Themen 8
J von Methode auf GUI-Komponenten zugreifen? Java Basics - Anfänger-Themen 5
J Problem mit Swing-Komponenten Java Basics - Anfänger-Themen 13
G Visuellen Komponenten Hints zuordnen Java Basics - Anfänger-Themen 5
G Komponenten dynamisch auf contentPane einbinden Java Basics - Anfänger-Themen 5
M wie kombiniere ich grafik und swing-komponenten Java Basics - Anfänger-Themen 16
X Komponenten automatisch erzeugen Java Basics - Anfänger-Themen 8
X Viele Komponenten automatisch erzeugen Java Basics - Anfänger-Themen 2
sambalmueslie Probleme mit Container und Komponenten. Java Basics - Anfänger-Themen 3
A Komponenten im Panel ausrichten Java Basics - Anfänger-Themen 5
M GridBagLayout und enthaltende komponenten Java Basics - Anfänger-Themen 5
G alle Komponenten vom Typ JPanel removen Java Basics - Anfänger-Themen 4
K Sichtbarkeit von Komponenten prüfen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben