怎么给JPanel组件指定位置? 请问怎么给JPanel组件指定位置?add(Component comp,int index),只能指定横向上的位置如果我想在一个JPanel中加好几个JButton 但不想全部放在一行。请问怎么换行 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 网格:panel名.setLayout(new GridLayout(a,b));//a是行 b是列 这么做只能尽量使其整齐点 swing 没有随便指定位置的方法吧 我也是刚学完这里 谢谢 但这样设置布局的话,我的JButton按钮变的好大一个 难看 或者能不能向JPanel中添加组件的时候换行?比如我有5个JButton 如果全部放在一行不好看能不能先add()3个然后换行,再add()2个?这样的话就比较好看了 谢谢 GridBagLayout, 学了这个基本都可以用了.JPanel panel = new JPanel();panel.add(new JButton("button1"), new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));panel.add(new JButton("button2"), new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));panel.add(new JButton("button3"), new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));panel.add(new JButton("button4"), new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));panel.add(new JButton("button5"), new GridBagConstraints(0, 1, 2, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));顺手写的代码, 有错误请调试一下.GridBagConstraints参数的意思(按照顺序):1: X坐标(0开始)2: Y坐标(0开始)3: 占据的X方向Cell个数4: 占据的Y方向Cell个数5: 横向扩展的比例6: 纵向扩展的比例7: 组件在所占区域中的位置, 9个位置.8: 组件是否拉伸(4个, 不拉伸, 横向, 纵向, 全部)9: 组件与所占区域边界的间隔, 象素10/11: 好像是组件的初始大小, 这2个我也不是太明白, 一般设置为04和5一般只有0.0或者1.0. 如果设置为0.0~1.0之间的值可能会引起面板尺寸变更时效果出现异常 Layout我自己认为一般需要熟练掌握3种: null, BorderLayout, GridBagLayoutnull就是XY定位, 这个不需要多说了.BorderLayout是东南西北中, 比较简单. 一般ToolBar都是BorderLayout.NORTH的, 呵呵.GridBagLayout, Swing的一大贡献. 熟练掌握基本没有不能画的. 至于FlowLayout(Panel默认的Layout), BoxLayout, CardLayout等等, 需要了解, 但不是经常有机会用到.比如ToolBar用的是BoxLayout, 而通常看到Wizard对话框多半是CardLayout. 本人觉得BoxLayout的效果跟GridBagLayout差不多,但用起来方便!而且GridBagLayout的代码换个LOOKANDFEEL就有可能报错,不通用 我也遇到了一个问题,就是一个登陆页面:Jrame做的。可是总是把里面的二组(标签+文本)分成两行??? 相整齐的话放在GridLayout的表格里也行 你把layout设为null,你就可以自行布局了,想怎么排就怎么排!! 推荐一个很好的类AbsoluteConstraintshttp://www.koders.com/ 搜索一下就有。panel.setLayout(new AbsoluteLayout());panel.add(new Label("xxxxxx"), new AbsoluteConstraints(colpos, rowpos, width, height)); 如上所示,使用gridbaglayout 方法太多了,不知道LZ要哪一种如果你要指定位置的话可以这样就可以了xxx.setBounds(new Rectangle(174, 170, 193, 98));很方便的,或者直接pPreview.setBounds(174, 170, 193, 98);只要指定(X,Y,WIDTH,HEIGHT). GridBagLayout根本没有想象的那么好而且复杂 界面修改麻烦 java 打印机 乱码 坐等高手解答 【求助】同一个程序在cmd中是死循环,在netbeans中正常~ 贴个笔试题目,看看用java该怎么实现,今天晚上12点结贴 奇怪的sql server问题 在applet中如何实现关闭? 急!!!!STRING问题在线等待!! 怎么样更换窗体上的图标? ***SCJP*** 怎样在Jbuilder3/4中安装使用javamail包? java重写方法 CORBA启动异常怎么办?
比如我有5个JButton 如果全部放在一行不好看
能不能先add()3个然后换行,再add()2个?
这样的话就比较好看了 谢谢
JPanel panel = new JPanel();
panel.add(new JButton("button1"), new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
panel.add(new JButton("button2"), new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
panel.add(new JButton("button3"), new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
panel.add(new JButton("button4"), new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));
panel.add(new JButton("button5"), new GridBagConstraints(0, 1, 2, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0));顺手写的代码, 有错误请调试一下.
GridBagConstraints参数的意思(按照顺序):
1: X坐标(0开始)
2: Y坐标(0开始)
3: 占据的X方向Cell个数
4: 占据的Y方向Cell个数
5: 横向扩展的比例
6: 纵向扩展的比例
7: 组件在所占区域中的位置, 9个位置.
8: 组件是否拉伸(4个, 不拉伸, 横向, 纵向, 全部)
9: 组件与所占区域边界的间隔, 象素
10/11: 好像是组件的初始大小, 这2个我也不是太明白, 一般设置为04和5一般只有0.0或者1.0. 如果设置为0.0~1.0之间的值可能会引起面板尺寸变更时效果出现异常
BorderLayout是东南西北中, 比较简单. 一般ToolBar都是BorderLayout.NORTH的, 呵呵.
GridBagLayout, Swing的一大贡献. 熟练掌握基本没有不能画的.
比如ToolBar用的是BoxLayout, 而通常看到Wizard对话框多半是CardLayout.
http://www.koders.com/ 搜索一下就有。panel.setLayout(new AbsoluteLayout());
panel.add(new Label("xxxxxx"), new AbsoluteConstraints(colpos, rowpos, width, height));
如果你要指定位置的话可以这样就可以了
xxx.setBounds(new Rectangle(174, 170, 193, 98));
很方便的,或者直接
pPreview.setBounds(174, 170, 193, 98);
只要指定(X,Y,WIDTH,HEIGHT).