添加JTextrea时,JButton会消失

时间:2014-05-26 20:50:19

标签: java jframe jpanel

我的Java程序存在问题,我可以在JFrame中向面板添加JButton,但是当我创建一个JTextArea对象时,JButton会消失吗?

package sandBox;

import java.awt.BorderLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello World");
        JFrame frame = new JFrame("Hello world");
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(600,500);
        frame.setLayout(new BorderLayout());

        JButton button2 = new JButton("STOP");
        JButton button1 = new JButton("GO");
        JTextArea text1 = new JTextArea();

        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        panel.add(button1, BorderLayout.SOUTH);
        panel.add(button2, BorderLayout.NORTH);

        frame.add(panel);

    }

}

1 个答案:

答案 0 :(得分:1)

记住

  1. BorderLayout只允许单个组件占用每个可用位置。添加另一个组件将涵盖以前的组件
  2. 如果可能,请在创建用户界面后致电setVisible
  3. 要实际添加所有组件,您的示例实际上并未将JTextArea添加到容器中
  4. 有人喜欢......

    //...
    // frame.setVisible(true);
    //...
    
    frame.add(text1);
    frame.add(panel, BorderLayout.SOUTH);
    frame.setVisible(true);
    

    可能会有帮助