2012-08-26 84 views
0

我有一个JPanel与BoxLayout.PAGE_AXIS,但是当我添加两个JLabels它,第一个填充整个JPanel。 JPanel的PreferredSize是高度10.两个JLabel都有首选高度5,并且所有三个宽度都相同。布局和定位

我在做什么错?

P.S.这就是为什么我preffer了再用空布局...

+1

你能有一些SSCCE更新? –

+1

你想要达到什么样子? –

回答

0

试试这个代码,它应该很好地工作:

import java.awt.Dimension; 

import javax.swing.*; 

public class Test extends JFrame{ 
    JPanel panel = new JPanel(); 
    JLabel lbl1 = new JLabel("First"); 
    JLabel lbl2 = new JLabel("Second"); 

    public Test(){ 
     super("BoxLayout Test"); 
     panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS)); 
     panel.setPreferredSize(new Dimension(300,200)); 
     panel.add(lbl1); 
     panel.add(lbl2); 
     add(panel); 

    } 
    public static void main(String [] args){ 
     SwingUtilities.invokeLater(new Runnable(){ 
      public void run() { 
       Test t = new Test(); 
       t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       t.pack(); 
       t.setVisible(true); 
     }}); 
    } 
} 
+1

您可能只是想了解[Swing与Threading](http://www.javamex.com/tutorials/threads/invokelater.shtml) – Sujay

+0

它可以正常工作。我认为这是没有必要的。这可能会使他的生活复杂化。顺便说一句,感谢编辑! :) –

+2

“工作正常”和“正常工作”之间有区别:) – Sujay