2013-07-12 83 views
-4

我想了解java佈局。但我的框架沒有得到顯示。我做錯了什麼。能否請你幫忙?Java佈局混亂

public class NewClass { 
     NewClass(){ 
      JFrame f=new JFrame(); 
      JPanel jPanelcolor=new JPanel(); 
      JPanel jPanelLayout=new JPanel(new GridLayout(3,3)); 
      JTextField fieldred=new JTextField(); 

     JSlider jsred=new JSlider(); 
     JSlider jsgreen=new JSlider(); 
     JSlider jsblue=new JSlider(); 
     jPanelLayout.add(new JLabel("Red")); 
     jPanelLayout.add(jsred); 
     jPanelLayout.add(fieldred); 
     f.getContentPane().add(jPanelcolor, BorderLayout.CENTER); 
     f.getContentPane().add(jPanelcolor, BorderLayout.SOUTH); 
     f.setVisible(true); 
    } 

    public static void main(String[]args){ 
     new NewClass(); 
    } 
+0

+1發佈什麼幾乎是一個SSCCE。不過,你應該學會格式化(縮進)你的代碼。每個IDE都有一個簡單的快捷方式,可以爲您完成所有工作。 –

回答

3

兩個主要問題是

  • 要添加相同jPanelcolor,不含任何添加劑的,在同一幀內容窗格兩次
  • 你不來製造框架之前調用pack()可見的,以使其具有基於其所包含的組件的最合適的維度。

另一個問題是,你不尊重Swing threading rules

+0

非常感謝你。對於像這樣編寫代碼或者擴展jframe來說,任何區別都是不同的。因爲在那篇文章中,我遵循作者擴展jframe – digrev