2012-02-08 239 views
-1

有谁知道为什么我的窗口内容没有放在中心?
内容只是去左上角,无论修改我让我无法找出原因...
我想在网页上的Y轴用一个简单的BoxLayout::不起作用,为什么?

package myview; 

import java.awt.BorderLayout; 
import java.awt.Component; 
import java.awt.Container; 
import java.io.IOException; 

import javax.swing.*; 

import Model.Words; 

public class MyWindow extends JFrame { 
    JLabel myWord = new JLabel(); 

    public MyWindow(){ 
     this.setSize(500, 300); 
     this.setVisible(true); 
     this.setLocationRelativeTo(null); 

     JPanel listPane = new JPanel(); 
     listPane.setLayout(new BoxLayout(listPane, BoxLayout.Y_AXIS)); 
     //listPane.setAlignmentX(Component.CENTER_ALIGNMENT); 

     Words words = new Words(); 
     this.myWord.setText(words.getWord()); 
     listPane.add(myWord); 
     JLabel myWord2 = new JLabel("test"); 
     listPane.add(myWord2); 
     this.setContentPane(listPane); 
     //, BorderLayout.CENTER 
     //buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS)); 
    } 

    public static void main (String[] args){ 
     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       MyWindow mywindow = new MyWindow(); 
       mywindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

       mywindow.setVisible(true); 
      } 
     }); 

    } 
} 

感谢您的帮助

+1

1)为了更好地提供帮助,请发布[SSCCE](http://sscce.org/)。 2)请使用普通的Java命名法(例如小写的包名)3)请找到你的班级,并将它应用于每个句子的第一个单词,以及'I'这个词以及适用于API类的地方。 4)不要扩展'JFrame'。 5)不要调用'setSize()'6)'Fenetre'?那是什么语言?请使用以英文为基础的网站代码中的英文等值。 (虽然这对任何开源代码都是一个很好的原则。) – 2012-02-08 06:04:55

+0

@安德鲁汤普森好吗完成;)那么JFrame呢?和setSize?你对我的问题有什么想法吗?谢谢 – Paul 2012-02-08 06:11:39

+0

*“okay done”*完成'what',究竟是什么?注意到我推荐了6分,但是唯一可以立即观察到的是点(2)。 *“JFrame怎么样?”*优先使用继承(搜索短语)。 *“和setSize?”*改为调用'pack()'。 *“你对我的问题有什么想法?”*我已经提到过它。 ***发布SSCCE *** – 2012-02-08 06:24:38

回答

1

您可能要在您的BoxLayout组件的前后添加Box.createVerticalGlue

另外我也会用Box.createVerticalBox作为容器。

+0

好吧谢谢我了解这件事,谢谢你的帮助 – Paul 2012-02-08 06:54:35