BorderLayout的布局是有五个方向,这个你应该知道的呢
那么如果你把一个控件放在CENTER的位置,四周不放任何控件,这个控件会把整个窗体占满,也就是说中间这个位置是具体扩张性的,它会把四周没有用到的空间都占过来
所以我估计你说的被放在了左上角,应该是因为你的NORTH和WEST这两个方向没有控件,而SOUTH方向有控件,所以你的curve就自动扩张了,变成了左上角

解决方案 »

  1.   

    这是在jb中生成的代码,稍作改动    
        contentPane.setLayout(new BorderLayout());
        contentPane = (JPanel) this.getContentPane();
        contentPane.setLayout(borderLayout1);
        this.setSize(new Dimension(400, 300));
        this.setTitle("フレーム タイトル");
        jPanel1.setBackground(Color.red);
        contentPane.add(jPanel1, BorderLayout.CENTER);
      

  2.   

    你的panel上有东西吗?
    jo_yoko(jo_yoko) 说得很有道理
      

  3.   

    jo_yoko:我在NORTH方向加了一个控件,可是还是无法控件居然无法显示!
      

  4.   

    不会吧!我给你一个示例,你试试就知道怎么回事了
    我估计你是开始的情况,就是我现在给你这个示例里的把4,5这两个JButton注释掉后的情况,你可以随意注释掉任意一个button,然后看看效果,相信你会明白的
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class test extends JFrame
    {
    public test()
    {
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(new JButton("1"),BorderLayout.CENTER);
    getContentPane().add(new JButton("2"),BorderLayout.SOUTH);
    getContentPane().add(new JButton("3"),BorderLayout.EAST);
    //getContentPane().add(new JButton("4"),BorderLayout.WEST);
    //getContentPane().add(new JButton("5"),BorderLayout.NORTH);
    setSize(300,300);
    show();
    }
    public static void main(String args[])
    {
    test frame=new test();
    frame.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });
    }
    }
      

  5.   

    大哥,我把东南西北都加了按狃,可是curve还是放在左上角并且把左边的按狃覆盖了,我真是郁闷啊!
         getContentPane().add(new JButton("2"),BorderLayout.SOUTH);
         getContentPane().add(new JButton("3"),BorderLayout.EAST);
         getContentPane().add(new JButton("4"),BorderLayout.WEST);
         getContentPane().add(new JButton("5"),BorderLayout.NORTH);
         contentPane.add(curve,derLayout.CENTER);
         setSize(300,300);
         show();
      

  6.   

    你这个地方用是什么布局呀?"derLayout.CENTER"
    我再给你一个示例,当中那个button像你一样放在一个panel中,然后在JFrame中居中放置,我是试好了的
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class test extends JFrame
    {
    public test()
    {
    JPanel jp=new JPanel();
    jp.setLayout(new BorderLayout());
    jp.add(new JButton("1"),BorderLayout.CENTER);
    getContentPane().setLayout(new BorderLayout());
    getContentPane().add(jp,BorderLayout.CENTER);
    getContentPane().add(new JButton("2"),BorderLayout.SOUTH);
    getContentPane().add(new JButton("3"),BorderLayout.EAST);
    getContentPane().add(new JButton("4"),BorderLayout.WEST);
    getContentPane().add(new JButton("5"),BorderLayout.NORTH);
    setSize(300,300);
    show();
    }
    public static void main(String args[])
    {
    test frame=new test();
    frame.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }
    });
    }
    }
      

  7.   

    curve.setLayout(new BordeLayout());
    curve.add(new JButton("ahf"),BorderLayout.CENTER);
    加上这两句试一下,可能与你的panel里没有加控件,它不知道自己的大小。
      

  8.   

    getContentPane().add(new JButton("2"),BorderLayout.SOUTH);
         getContentPane().add(new JButton("3"),BorderLayout.EAST);
         getContentPane().add(new JButton("4"),BorderLayout.WEST);
         getContentPane().add(new JButton("5"),BorderLayout.NORTH);
         contentPane.add(curve,derLayout.CENTER);----->BorderLayout.CENTER
         setSize(300,300);
         show();