BorderLayout的布局是有五个方向,这个你应该知道的呢
那么如果你把一个控件放在CENTER的位置,四周不放任何控件,这个控件会把整个窗体占满,也就是说中间这个位置是具体扩张性的,它会把四周没有用到的空间都占过来
所以我估计你说的被放在了左上角,应该是因为你的NORTH和WEST这两个方向没有控件,而SOUTH方向有控件,所以你的curve就自动扩张了,变成了左上角
那么如果你把一个控件放在CENTER的位置,四周不放任何控件,这个控件会把整个窗体占满,也就是说中间这个位置是具体扩张性的,它会把四周没有用到的空间都占过来
所以我估计你说的被放在了左上角,应该是因为你的NORTH和WEST这两个方向没有控件,而SOUTH方向有控件,所以你的curve就自动扩张了,变成了左上角
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);
jo_yoko(jo_yoko) 说得很有道理
我估计你是开始的情况,就是我现在给你这个示例里的把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);
}
});
}
}
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();
我再给你一个示例,当中那个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);
}
});
}
}
curve.add(new JButton("ahf"),BorderLayout.CENTER);
加上这两句试一下,可能与你的panel里没有加控件,它不知道自己的大小。
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();