java 在有GridLayout布局管理器的情况下,怎么设置元件大小

如例子://GUI包含三个JScrollBar元件,分别表示低血压、高血压、//脉搏,当移动JScrollBar键时,改变其值importjavax.swing.JLab... 如例子:
//GUI包含三个JScrollBar元件,分别表示低血压、高血压、
//脉搏,当移动JScrollBar键时,改变其值
import javax.swing.JLabel;
import javax.swing.JScrollBar;
import javax.swing.JFrame;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.Dimension;

public class MyScrollBar extends JFrame{
private JLabel hypertension,hypotension,pulse;
private JLabel hValue,lValue,pValue;
//高血压,低血压,脉搏
private JScrollBar hScrollBar,lScrollBar,pScrollBar;
public MyScrollBar(){
Container c=getContentPane();
c.setLayout(new GridLayout(3,3));

hypertension=new JLabel("高血压");
hypotension=new JLabel("低血压");
pulse=new JLabel("脉搏");
hValue=new JLabel("120");
lValue=new JLabel("20");
pValue=new JLabel("65");
hScrollBar=new JScrollBar(JScrollBar.HORIZONTAL,120,2,20,220); //vertical horizontal
lScrollBar=new JScrollBar(JScrollBar.HORIZONTAL); //垂直 水平
pScrollBar=new JScrollBar(JScrollBar.HORIZONTAL);

hScrollBar.setPreferredSize(new Dimension(30,30));//为什么这里没起到效果
lScrollBar.setPreferredSize(null);//为什么这里没起到效果

c.add(hypertension);
c.add(hValue);
c.add(hScrollBar);
c.add(hypotension);
c.add(lValue);
c.add(lScrollBar);
c.add(pulse);
c.add(pValue);
c.add(pScrollBar);
setBounds(100,100,300,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
MyScrollBar app=new MyScrollBar();
}
}

因为感觉用GridLayout的时候较多,有网友说GridLayout会强制限制元件大小,所有设置了setPreferredSize,是这样的吗,如何解决这个问题。还是说有没有其他方法,如 在其他管理器下怎么让面板的元件 随自己心意 自由修改,请高手指教下
展开
 我来答
hitzsf
2018-02-21 · TA获得超过2060个赞
知道大有可为答主
回答量:1741
采纳率:78%
帮助的人:1165万
展开全部
GridLayout 似乎会忽略组件的大小,然后自己去平均分配每个组件的大小。这种情况一般都是用GridBagLayout
pieryon
推荐于2018-02-21 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166869
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
直接用addView(child, width, height).size()来设置就可以了。

因为GridLayout里面的组件是在变化的,所有需要动态设置子组件的Size和它们之间的间距。

还可以这么做:在父类容器中把子类容器的参数通过修改子类容器构造函数的方式传给子类容器,这样就可以在父类容器中直接修改子类容器的属性了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清风若惜0
2014-08-11
知道答主
回答量:3
采纳率:0%
帮助的人:2.5万
展开全部
说实话这个问题我研究很久了,据我所知答案是没有办法的。用了几种方法来改变大小,他就是不搭理,一点用没。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式