当前位置: 技术问答>java相关
刚入门,请大家指教。。。
来源: 互联网 发布时间:2015-08-28
本文导语: 怎样设置一个固定大小的JPanel的大小呀,如果要指定它的位置呢? 还有,设置在JPanel中的按钮,指定它的位置时,相对位置是以Container作参照还是以JPanel作参照呀? import javax.swing.*; import java.awt.*; import javax.swing.bor...
怎样设置一个固定大小的JPanel的大小呀,如果要指定它的位置呢?
还有,设置在JPanel中的按钮,指定它的位置时,相对位置是以Container作参照还是以JPanel作参照呀?
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
/*
*/
public class myclspaneltest extends JApplet
{
public void init()
{
Container mycontainer01=getContentPane();
TitledBorder mytitleborder01=new TitledBorder("mypanel01 border");
JPanel mypanel01=new JPanel();
mycontainer01.setLayout(new FlowLayout());
mypanel01.setLayout(new BorderLayout());
mypanel01.setBorder(mytitleborder01);
mypanel01.setBorder(BorderFactory.createLineBorder(Color.blue,2));
mycontainer01.add(mypanel01);
}
}
还有,设置在JPanel中的按钮,指定它的位置时,相对位置是以Container作参照还是以JPanel作参照呀?
import javax.swing.*;
import java.awt.*;
import javax.swing.border.*;
/*
*/
public class myclspaneltest extends JApplet
{
public void init()
{
Container mycontainer01=getContentPane();
TitledBorder mytitleborder01=new TitledBorder("mypanel01 border");
JPanel mypanel01=new JPanel();
mycontainer01.setLayout(new FlowLayout());
mypanel01.setLayout(new BorderLayout());
mypanel01.setBorder(mytitleborder01);
mypanel01.setBorder(BorderFactory.createLineBorder(Color.blue,2));
mycontainer01.add(mypanel01);
}
}
|
这是布局管理器的问题。你用的BorderLayout是不能随意改变组件大小和位置的,应该用XYLayout或者null。另外,组件的位置应该是以父容器为参照的,即你要是在panel上加button,则以panel为参照。
建议不要使用XYLayout,用多个panel结合BorderLayout以及GridLayout,也能做出很漂亮的界面,而且移植性更好。
建议不要使用XYLayout,用多个panel结合BorderLayout以及GridLayout,也能做出很漂亮的界面,而且移植性更好。