如下是我编写的需要显示三个按钮 和一个JTextArea区域的代码  可是运行时只能显示JTextArea区域  按钮不能显示  是什么原因呢?
import java.awt.*;
import javax.swing.*;public class TextEdit {
JButton button1,button2,button3;
JTextArea textarea;
JFrame frame;
JPanel panel1,panel2;
public TextEdit(){
frame = new JFrame("TextArea");
Container c = frame.getContentPane();
button1 = new JButton("保存");
button2 = new JButton("取消");
button3 = new JButton("退出");
panel1 = new JPanel();
panel1.add(button1);
panel1.add(button2);
panel1.add(button3);
textarea = new JTextArea();
textarea.setLineWrap(true);
JScrollPane area=new JScrollPane(textarea);
c.add(panel1);
c.add(textarea);
frame.setSize(400,200);
frame.setVisible(true);
}
public static void main(String[] args) {
new TextEdit();
}}

解决方案 »

  1.   

    c.add(panel1);
    =>
    c.add(panel1,BorderLayout.NORTH);
    不加的话默认在BorderLayout.CENTER. 后添加的覆盖同一位置前面添加的组件。
      

  2.   

    JFrame 下定义的 Container 对象 默认的布局是BorderLayer布局  
    BorderLayout布局 是东西南北中布局
    c.add()在默认的情况下 是在  中的   在往对象c里添加组件时要考虑望哪方,不指定位置的话后面加上的组件会覆盖前面加上的组件的