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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 在有GridLayout布局管理器的情况下,怎么设置元件大小相关的知识,希望对你有一定的参考价值。

如例子:
//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,是这样的吗,如何解决这个问题。还是说有没有其他方法,如 在其他管理器下怎么让面板的元件 随自己心意 自由修改,请高手指教下

GridLayout 似乎会忽略组件的大小,然后自己去平均分配每个组件的大小。这种情况一般都是用GridBagLayout 参考技术A 直接用addView(child, width, height).size()来设置就可以了。

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

还可以这么做:在父类容器中把子类容器的参数通过修改子类容器构造函数的方式传给子类容器,这样就可以在父类容器中直接修改子类容器的属性了。
参考技术B 说实话这个问题我研究很久了,据我所知答案是没有办法的。用了几种方法来改变大小,他就是不搭理,一点用没。本回答被提问者采纳

以上是关于java 在有GridLayout布局管理器的情况下,怎么设置元件大小的主要内容,如果未能解决你的问题,请参考以下文章

Java AWT 图形界面编程LayoutManager 布局管理器 ④ ( GridLayout 网格布局 | GridBagLayout 网格包布局 )

三十Java图形化界面设计——布局管理器之GridLayout(网格布局)

Java图形化界面设计——布局管理器之GridLayout(网格布局)

Java界面布局管理器

java.awt.的常用三种布局管理器

在不添加FormLayout的情况下组合GridLayout和FillLayout?