2008-11-22 10 views

Antwort

9

Sie müssen die Schaltfläche zu einem anderen Panel hinzufügen und dieses Panel dann dem Rahmen hinzufügen.

Es stellt sich heraus die Border was auch immer Komponente erweitert in der Mitte wie diese

Ihr Code sollte nun so aussehen:

Vor

public static void main(String [] args) { 
    JLabel label = new JLabel("Some info"); 
    JButton button = new JButton("Ok"); 

    JFrame frame = ... 

    frame.add(label, BorderLayout.NORTH); 
    frame.add(button , BorderLayout.CENTER); 
    .... 

} 

ändern es so etwas wie dieses:

public static void main(String [] args) { 
    JLabel label = new JLabel("Some info"); 
    JButton button = new JButton("Ok"); 
    JPanel panel = new JPanel(); 
    panel.add(button); 

    JFrame frame = ... 

    frame.add(label, BorderLayout.NORTH); 
    frame.add(panel , BorderLayout.CENTER); 
    .... 

} 

Vorher/Nachher

Before http://img372.imageshack.us/img372/2860/beforedl1.png After http://img508.imageshack.us/img508/341/aftergq7.png

+0

Was ist der Standard Layout Manager auf dem Panel dann? FlowLayout? –

+0

FlowLayout, das ist richtig. – OscarRyz

0

Wieder :)


    import javax.swing.*; 

    public class TestFrame extends JFrame { 
     public TestFrame() { 
      JLabel label = new JLabel("Some info"); 
      JButton button = new JButton("Ok"); 
      Box b = new Box(BoxLayout.Y_AXIS); 
      b.add(label); 
      b.add(button); 
      getContentPane().add(b); 

     } 
     public static void main(String[] args) { 
      JFrame f = new TestFrame(); 
      f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      f.setLocationRelativeTo(null); 
      f.setVisible(true); 

     } 
    } 
2

Oder benutzen Sie einfach Absolute Layout. Es ist auf der Layoutpalette.

Oder aktivieren Sie es mit:

frame = new JFrame(); 
... //your code here 

// to set absolute layout. 
frame.getContentPane().setLayout(null); 

Auf diese Weise können Sie frei die Kontrolle platzieren überall Sie mögen.

Verwandte Themen