Hey herkesi almak için genişleyen. Bir düğme ve üzerinde bir etiket ile bir salıncak GUI yapmaya çalışıyorum. im bir sınır düzeni ve (kuzey alanda) etiketini kullanarak ince görünmeye devam eder ancak düğme çerçevenin kalanı (bu merkez alanında var) kadar sürer. Herhangi bir fikrin nasıl düzeltileceğini?JButton tüm çerçeve/konteynerin
6
A
cevap
9
başka panele düğme eklemek ve sonra çerçeveye bu paneli eklemek zorunda.
böyle bir şey değiştirin bunu
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);
....
}
önce::
O BorderLayout şimdi şu şekilde görünmelidir orta
Kişisel kodda olduğu hiç hangi bileşen genişler çıkıyor
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);
....
}
önce/sonra
Before http://img372.imageshack.us/img372/2860/beforedl1.png After http://img508.imageshack.us/img508/341/aftergq7.png
0
Yine :)
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
Ya da sadece Mutlak düzenini kullanır. Layouts Pallet üzerinde.
Veya ile etkinleştirmek:
frame = new JFrame();
... //your code here
// to set absolute layout.
frame.getContentPane().setLayout(null);
Bu şekilde, özgürce her yerde kontrol yerleştirebilirsiniz sizin gibi.
sonra Panelde varsayılan LayoutManger nedir? Akış düzeni? –
FlowLayout, bu doğru. – OscarRyz