在Java中将两个面板添加到JFrame

时间:2015-04-05 19:10:12

标签: java swing jframe

所以我要做的是在JFrame内部有两个面板(它必须是面板)并且具有一定的尺寸,另一个尺寸较小,并且尺寸较小的面板涂有一定的颜色。 / p>

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);
}

}

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

1 个答案:

答案 0 :(得分:2)

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

  1. 您可以将两个按钮(Do it& Clear)添加到panel2。最终会是这样的:
  2. 1st solution

    1. 您可以向panel2添加空白JLabel。

      size = new JLabel(" //您可以根据需要在此处添加任意数量的空格,您拥有的空间越多,它就越大,并且#34;)

      panel2.add(大小);

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

    2. 这个结果将是这样的:

      2nd solution

      祝你好运!