java - 在 Java 中向 JFrame 添加两个面板

标签 java swing jframe

所以我想做的是在 JFrame 内部有 2 个面板(必须是面板),其中 1 个具有一定的尺寸,另一个尺寸较小,并且较小尺寸的面板涂有某种颜色。

public class Binary{

private JLabel header;
private JTextField userInput1;
private JButton doIt;
private JButton clear;
private JRadioButton binary, decimal;
private JLabel number2;
private JFrame frame1;
private JPanel panel1;
private JPanel panel2;

public Binary(){

    frame1 = new JFrame("Number Converter"); // frame 
    frame1.setLayout(new FlowLayout());
    frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    panel1 = new JPanel(); // first panel (light grey)
    panel1.setSize(250, 475);
    frame1.add(panel1);

    header = new JLabel("1- Select the mode: ");
    panel1.add(header);

    ButtonGroup choices= new ButtonGroup();
    binary = new JRadioButton("Binary to Decimal"); // add the first radiobutton binary to decimal
    choices.add(binary);
    decimal = new JRadioButton("Decimal to Binary"); // add the second radiobutton decimal to binary
    choices.add(decimal);
    frame1.add(binary); // adds both to the program
    frame1.add(decimal);

    userInput1 = new JTextField(20); // Adds a blank text field for user input
    frame1.add(userInput1);

    number2 = new JLabel("2- Enter some words then click Do It:"); 
    frame1.add(number2);

    panel2 = new JPanel(); // second panel, bottom dark grey
    panel2.setOpaque(true);
    panel2.setBackground(Color.GRAY);
    panel2.setSize(500, 500);
    frame1.add(panel2);

    doIt = new JButton("Do It"); // left button do it
    frame1.add(doIt);

    clear = new JButton("Clear"); // right button clear
    frame1.add(clear);

    frame1.setSize(250, 500);
    frame1.setVisible(true);
}

}

出于某种原因,我的代码基本上在第一个面板的顶部输出了一个很小的面板。 我有什么遗漏的吗?

最佳答案

我找到了您的问题的 2 个可能的答案。

  1. 您可以向 panel2 添加两个按钮(Do it 和 Clear)。最终结果会是这样的:

1st solution

  • 您可以向 panel2 添加空白 JLabel。

    size = new JLabel("//这里可以添加任意多个空格,越多横向越大");

    panel2.add(尺寸);

    //如果你想让它垂直更大,只需制作更多的JLabel并将它们添加到panel2即可。

  • 这个结果将是这样的:

    2nd solution

    祝你好运!

    关于java - 在 Java 中向 JFrame 添加两个面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29461150/

    相关文章:

    java - 无法从 SQL Server 正确获取由 ASCII 值组成的值

    Java JFrame 绘制多行

    Java 6,JFrame 始终停留在顶部

    设置 jFrame.setUndecorated(true) 时不调用 Java WindowClosing 事件

    java - android 定时器任务替代长时间运行的BackgroundService

    java - Keytool 认为 cacerts 不存在

    Java - 在 JTextField 中输入一些字母后,JFrame 一直卡住

    java - Netbeans 和 Java - 使用 getResource() - 返回 null

    java - 类型将 : Map[String, String] 转换为 Map[String,Object]

    java - 在 Swing 中将图像移动到背景图像上时如何最小化渲染