Java布局混乱

Java布局混乱,java,swing,awt,layout-manager,Java,Swing,Awt,Layout Manager,我试图理解java布局。但是我的框架没有显示出来。我做错了什么。你能帮忙吗 public class NewClass { NewClass(){ JFrame f=new JFrame(); JPanel jPanelcolor=new JPanel(); JPanel jPanelLayout=new JPanel( new GridLayout(3,3)); JTextField fieldred=

我试图理解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();
     }

两个主要问题是

  • 您在同一个框架内容窗格中添加了两次相同的
    jPanelcolor
    ,不包含任何内容
  • 在使框架可见之前,不要调用
    pack()
    ,以根据其包含的组件使其具有最合适的尺寸

另一个问题是,您不尊重发布几乎是SSCCE的内容的。

+1。不过,您应该学会格式化(缩进)代码。每个IDE都有一个简单的快捷方式,可以为您完成所有这些。非常感谢您的回答。以这种方式编写代码与扩展jframe有什么区别吗?因为在那篇文章中,我关注的是writer扩展了jframe