preferredSize()

Luk10

Top Contributor
Hallo,

folgendes:

Ich hab einen JFrame 600x400 pixel und ein JPanel (
Code:
ZellenGui extends JPanel
)

Java:
  public static void starten() {
      new ZellenGui(450, 400);
    }
  public ZellenGui (int w, int h) {
      this.setPreferredSize(new Dimension(w, h));

Wenn ich jetzt das Fenster oben rechts Maximiere sehe ich aber mein Panel in der vollen länge (Y-Richtung)! Wieso passiert das? Ich habe doch setPreferrdsize w und h gesetzt ...

Was stimmt da nicht und wie kann ich es ändern?

Danke, Luk
 
S

SlaterB

Gast
mit einem LayoutManager wie FlowLayout wäre die Angabe auch längerfristig nützlich,
andere wie BorderLayout (Standard fürs ContentPane eines JFrames) kümmern sich nicht darum
 

Luk10

Top Contributor
Noch eine Frage:

Java:
  public static void starten() {
      new ZellenGui(450, 400);
    }
  public ZellenGui (int w, int h) {
      this.setPreferredSize(new Dimension(w, h));
      JFrame frame = new JFrame("Zelle");
      game_running = true;
      stopped = false;
      speed = 5;

      JPanel hauptPanel = new JPanel();
      hauptPanel.setLayout(new BoxLayout(hauptPanel, BoxLayout.Y_AXIS));
      
      JButton button = new JButton("Stopp");
      hauptPanel.add(button);
      button.addActionListener(new buttonListener());
      
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setSize(600, 400);
      frame.getContentPane().add(BorderLayout.WEST, this);
      frame.getContentPane().add(BorderLayout.EAST, hauptPanel);
      this.setBackground(Color.white);
      
      frame.setVisible(true);
      
      initialisieren();

Das ist der gesammte initialisierungs-Code für mein ZellenGui ... ich habe ein 20x20 Pixel großes image das sich auf meinem ZellenGui bewegt!

Ich habe eine kleine Testmethode zum Positionen-setzten geschrieben ....

Wenn ich das jetzt aber ausprobiere stimmt die x-Koordinate genau, jedoch die y-Koordinate passt irgendwie nicht!

Java:
    public void setPos (int x, int y) {
        this.x = x;
        this.y = y;
Wenn ich für x 430 nehm und für y 380 sehe ich mein Image nicht mehr ...

wieso stimmt die y-Koordinate nicht?

Danke, Luk

Edit: für y muss ich ca 352 nehmen!
 
Zuletzt bearbeitet:
S

SlaterB

Gast
die Höhe 400 bezieht sich auch auf die Titelleiste, die nimmt 20 Pixel, für den Rest bleiben 380,
oder ähnliche Gemeinheiten, Abstände, Ränder...
 
Ähnliche Java Themen

Ähnliche Java Themen


Oben