Java 如何在Jframe中分离Jpanel

Java 如何在Jframe中分离Jpanel,java,swing,debugging,jframe,jpanel,Java,Swing,Debugging,Jframe,Jpanel,我正在努力实现这个布局 我不知道为什么我会得到这个 这是我的密码 package testing; import java.io.*; import java.util.*; import java.security.*; import javax.xml.bind.DatatypeConverter; import java.lang.*; import java.awt.*; import javax.swing.*; public class Testing { pu

我正在努力实现这个布局

我不知道为什么我会得到这个

这是我的密码

package testing;

import java.io.*;
import java.util.*;
import java.security.*;
import javax.xml.bind.DatatypeConverter;
import java.lang.*;
import java.awt.*;
import javax.swing.*;

public class Testing 
{


    public static class GridPanel extends JPanel 
    {
        public GridPanel()
        {
            setLayout(new GridLayout(4,4));
            setBackground(Color.GREEN);
            this.setPreferredSize(new Dimension(500,100));



            JButton b1 = new JButton ("Button 1");
            JButton b2 = new JButton ("Button 2");
            JButton b3 = new JButton ("Button 3");
            JButton b4 = new JButton ("Button 4");
            JButton b5 = new JButton ("Button 5");
            JButton b6 = new JButton ("Button 6");
            JButton b7 = new JButton ("Button 7");
            JButton b8 = new JButton ("Button 8");
            JButton b9 = new JButton ("Button 9");
            JButton b10 = new JButton ("Button 10");
            JButton b11 = new JButton ("Button 11");
            JButton b12 = new JButton ("Button 12");
            JButton b13 = new JButton ("Button 13");
            JButton b14 = new JButton ("Button 14");
            JButton b15 = new JButton ("Button 15");
            JButton b16 = new JButton ("Button 16");

            add(b1);
            add(b2);
            add(b3);
            add(b4);
            add(b5);
            add(b6);
            add(b7);
            add(b8);
            add(b9);
            add(b10);
            add(b11);
            add(b12);
            add(b13);
            add(b14);
            add(b15);
            add(b16);

        }

    }



    public static void main(String[] args) 
    {
         JPanel primary = new JPanel();
         primary.setPreferredSize(new Dimension(500,500));



        JPanel jp1 = new JPanel();
        jp1.setPreferredSize(new Dimension(500,100));
        JTextField jt1 = new JTextField(8);
        jp1.add(jt1);


       GridPanel gp = new GridPanel();

       primary.add(jp1);
       primary.add(gp);

       JFrame jf = new JFrame();
       jf.setPreferredSize(new Dimension(500,500));
       jf.add(primary);
       jf.pack();
       jf.setVisible(true);

    }


}

我不知道如何将框架中的两个面板分开,我怎么会做错了???

研究如何在JFrame中使用a,将面板的文本区域放在页面的开始部分,将GridPanel放在中间部分。

研究在JFrame中使用a,将包含所需文本区域的面板放在页面开始部分,将GridPanel放在中间部分。

研究将a用于JFrame,将包含所需文本区域的面板放在页面开始部分,将GridPanel放在中间部分。

研究将a用于JFrame,将包含所需文本区域的面板放在页面开始部分,将GridPanel放在中间部分。

尝试以下操作:

public static void main(String[] args) 
{

   JPanel primary = new JPanel(new BorderLayout());
   primary.setOpaque(true);

   JTextField jt1 = new JTextField(8);
   jt1.setPreferredSize(new Dimension(0, 30));
   primary.add(jt1, BorderLayout.NORTH);


   GridPanel gp = new GridPanel();
   primary.add(gp, BorderLayout.CENTER);

   JFrame jf = new JFrame();
   jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   jf.setPreferredSize(new Dimension(400,200));
   jf.setContentPane(primary);
   jf.pack();
   jf.setVisible(true);

}

试着这样做:

public static void main(String[] args) 
{

   JPanel primary = new JPanel(new BorderLayout());
   primary.setOpaque(true);

   JTextField jt1 = new JTextField(8);
   jt1.setPreferredSize(new Dimension(0, 30));
   primary.add(jt1, BorderLayout.NORTH);


   GridPanel gp = new GridPanel();
   primary.add(gp, BorderLayout.CENTER);

   JFrame jf = new JFrame();
   jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   jf.setPreferredSize(new Dimension(400,200));
   jf.setContentPane(primary);
   jf.pack();
   jf.setVisible(true);

}

试着这样做:

public static void main(String[] args) 
{

   JPanel primary = new JPanel(new BorderLayout());
   primary.setOpaque(true);

   JTextField jt1 = new JTextField(8);
   jt1.setPreferredSize(new Dimension(0, 30));
   primary.add(jt1, BorderLayout.NORTH);


   GridPanel gp = new GridPanel();
   primary.add(gp, BorderLayout.CENTER);

   JFrame jf = new JFrame();
   jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   jf.setPreferredSize(new Dimension(400,200));
   jf.setContentPane(primary);
   jf.pack();
   jf.setVisible(true);

}

试着这样做:

public static void main(String[] args) 
{

   JPanel primary = new JPanel(new BorderLayout());
   primary.setOpaque(true);

   JTextField jt1 = new JTextField(8);
   jt1.setPreferredSize(new Dimension(0, 30));
   primary.add(jt1, BorderLayout.NORTH);


   GridPanel gp = new GridPanel();
   primary.add(gp, BorderLayout.CENTER);

   JFrame jf = new JFrame();
   jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   jf.setPreferredSize(new Dimension(400,200));
   jf.setContentPane(primary);
   jf.pack();
   jf.setVisible(true);

}

@Computernerd:用上面给出的主函数替换代码主函数,它工作。@Computernerd:用上面给出的主函数替换代码主函数,它工作。@Computernerd:用上面给出的主函数替换代码主函数,它工作。@Computernerd:用上面给出的主函数替换代码主函数,它起作用了。