给JFrame指定布局(setLayout)失败的问题有人见过么

Plastrio 2008-09-08 08:36:14
我在构造方法里写了 setLayout(new GridBagLayout()), 但是运行后还是BorderLayout,怎么办?
...全文
298 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpoysy 2008-09-12
  • 打赏
  • 举报
回复
你如果用frame.setLayout(new GridBagLayout());是会出现问题的,因为你默认给frame布局了,而并没有给frame.getContentPane()得到的Container布局,你所有的控件都是放在frame.getContentPane()上面的,所以就会出现你所说的成为了BorderLayout布局了.
nj_dobetter 2008-09-11
  • 打赏
  • 举报
回复
frame.getContentPane().setLayout();
frame.getContentPane().add(child);
huadis 2008-09-10
  • 打赏
  • 举报
回复
再看一下你的程序是不是写错了,api里讲的清楚,表格布局有些设置是根据行列参数的具体情况自动变的。
qusic 2008-09-09
  • 打赏
  • 举报
回复
也可以直接往JFrame里加,因为API里说:
根据规定,根窗格所提供的内容窗格应该包含 JFrame 所显示的所有非菜单组件。这不同于 AWT Frame。为了方便地使用 add 及其变体,已经重写了 remove 和 setLayout,以在必要时将其转发到 contentPane。这意味着可以编写:

frame.add(child);


子级将被添加到 contentPane
Plastrio 2008-09-09
  • 打赏
  • 举报
回复
哦,就是说不能直接往JFrame里加组件,要往ContentPane里加?
最近在看AWT的书(看布局管理器),忘了这回事了...
ZangXT 2008-09-08
  • 打赏
  • 举报
回复
api中有说明:
JFrame 类与 Frame 轻微不兼容。与其他所有 JFC/Swing 顶层容器一样,JFrame 包含一个 JRootPane 作为其唯一的子容器。根据规定,根窗格所提供的内容窗格应该包含 JFrame 所显示的所有非菜单组件。这不同于 AWT Frame。为了方便地使用 add 及其变体,已经重写了 remove 和 setLayout,以在必要时将其转发到 contentPane
测试:


import java.awt.GridLayout;
import java.awt.LayoutManager;
import javax.swing.JFrame;

public class Main{
public static void main(String[] args) {
JFrame frame = new JFrame("Test");
frame.setLayout(new GridLayout(3,3));
LayoutManager manager = frame.getLayout();
System.out.println(manager);
manager = frame.getContentPane().getLayout();
System.out.println(manager);
}
}

看得出设置之后contentPane的布局管理器改了。
需要正能量 2008-09-08
  • 打赏
  • 举报
回复
设置失败可能性不大,应该是你自己代码有问题;
可能对象弄错?全局,局部变量混淆?仔细看看吧.
ZangXT 2008-09-08
  • 打赏
  • 举报
回复
直接设置contentPane吧。
把组件都加到panel里面。
horizonlyhw 2008-09-08
  • 打赏
  • 举报
回复
你把所有代碼都貼出來看看
jy02166074 2008-09-08
  • 打赏
  • 举报
回复
panle能设置不可改变大小么?
qsrock 2008-09-08
  • 打赏
  • 举报
回复
新手应该多看API,那样才能进步
pzy123cn 2008-09-08
  • 打赏
  • 举报
回复
http://java.sun.com/docs/books/tutorial/uiswing/layout/gridbag.html

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧