定义了两个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的显示位置?
谢谢您的回答
解决方案 »
- 这段代码有什么问题么?为什么不可以实现死锁
- 新手!!苦恼(求指教 不胜感激)
- smratupload怎样实现图片批量上传,并能下载图片。在线等!
- 在java 中,实现 a,b,c,d 四个字母按顺序任意组合排列有多少种,并打印出来的算法
- 如何用FTP客户端对FTP服务器中的文件进行删除、重命名操作
- 一个基本的语法问题,在线等。(100分)
- 中国人发明的一种迄今最简单的排序算法—张仰彪排序法问世了! 请各路高手前来评判
- 如何解决用java.util.zip压缩文件的文件名乱码问题?
- 关于流的一个小问题
- 800分结帖请feiyuegaoshan(飞跃)领分2
- 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();
}
}