2012-02-08 278 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