定义了两个JPanel p1,p2,然后设置p1的布局管理器为BorderLayout
然后设置p2的布局管理器为GridBagLayout ,然后在p2上面加了一些组件
最后把p2加到p1上面去,即 p1.add(p2,BorderLayout.CENTER);
但是p2完全填充了p1的CENTER区域,我该怎么设置才能使p2按照我设置的大小显示
还有就是怎么才能在p1中精确定位p2的显示位置?
谢谢您的回答
然后设置p2的布局管理器为GridBagLayout ,然后在p2上面加了一些组件
最后把p2加到p1上面去,即 p1.add(p2,BorderLayout.CENTER);
但是p2完全填充了p1的CENTER区域,我该怎么设置才能使p2按照我设置的大小显示
还有就是怎么才能在p1中精确定位p2的显示位置?
谢谢您的回答
解决方案 »
- java 使用jxl导出excel怎样设置excel横向打印?
- 什么叫 Java 不提供类的多重继承,但提供接口多重继承机制?
- java 新手问个入门级问题 很简单请帮忙
- java 怎么学习?
- 怎样监听JTextArea换行操作?或者在换行时执行方法?
- 一个对象序列化的问题,请大家帮忙指点
- 用JGraph做流程设计
- 求助一个JAVA小程序的验证问题!请高手们指点!
- 100分求developer2000的下载地址,谢谢了
- 关于hasnext和next
- GridBagLayout布局管理器为什么还是不能固定按钮的大小啊~~~~~~~~~~~~``疯了!!!!
- 可能是swing组件的层序问题,请大家帮忙分析一下!
二,把布局设成FlowLayout,这样也会按你的大小或默认大小进去的。这样你也许就要多用点面板了才能定位好了。
还有精确定位是不好的,一但你拉动窗口的大小你会发现组件排列超级变形了,不好看了(除非你设置成面板大小固定)
import javax.swing.*;public class Test extends JFrame
{
JPanel p1;
JButton btnP1 = new JButton();
JPanel p2 = new JPanel();
JButton btnP2 = new JButton();
JTextArea txaInfo = new JTextArea();
public Test()
{
try
{
setDefaultCloseOperation(EXIT_ON_CLOSE);
init();
}
catch (Exception exception)
{
exception.printStackTrace();
}
} private void init() throws Exception
{
p1 = (JPanel) getContentPane();
p1.setLayout(null);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
btnP1.setBounds(new Rectangle(42, 25, 142, 36));
btnP1.setFont(new java.awt.Font("Dialog", Font.BOLD, 16));
btnP1.setText("我在p1上");
p2.setBorder(BorderFactory.createEtchedBorder());//特别在p2上设置个边框
p2.setBounds(new Rectangle(92, 81, 223, 101));
p2.setLayout(null);
btnP2.setBounds(new Rectangle(49, 23, 132, 44));
btnP2.setFont(new java.awt.Font("Dialog", Font.BOLD, 16));
btnP2.setText("我在p2上");
txaInfo.setFont(new java.awt.Font("Dialog", Font.PLAIN, 16));
txaInfo.setText("我也在p1上,p2加在p1上,加了边框的就是p2");
txaInfo.setBounds(new Rectangle(46, 204, 309, 54));
p1.add(btnP1);
p1.add(p2);
p1.add(txaInfo);
p2.add(btnP2);
this.setLocationRelativeTo(this);//窗口居中显示
this.setVisible(true);
}
public static void main(String[] args)
{
new Test();
}
}
建议加个p3 放进p1布局的center位置 再把p2和你要放的其他东西放在p3里 p3的布局看你需要了
再建议你说的p2以外的其他东西也放在一个Panel里
import java.awt.Dimension;import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class test extends JFrame{
test(){
this.setLayout(null);
JPanel jpanel1=new JPanel();
jpanel1.setBorder(BorderFactory.createLineBorder(Color.red, 1));
jpanel1.setBounds(10, 10, 200, 200);
this.add(jpanel1);
this.setSize(800,600);
this.setVisible(true);
}
public static void main(String[] args) {
new test();
}
}