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,是这样的吗,如何解决这个问题。还是说有没有其他方法,如 在其他管理器下怎么让面板的元件 随自己心意 自由修改,请高手指教下 展开
//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,是这样的吗,如何解决这个问题。还是说有没有其他方法,如 在其他管理器下怎么让面板的元件 随自己心意 自由修改,请高手指教下 展开
3个回答
推荐于2018-02-21 · 知道合伙人数码行家
关注
展开全部
直接用addView(child, width, height).size()来设置就可以了。
因为GridLayout里面的组件是在变化的,所有需要动态设置子组件的Size和它们之间的间距。
还可以这么做:在父类容器中把子类容器的参数通过修改子类容器构造函数的方式传给子类容器,这样就可以在父类容器中直接修改子类容器的属性了。
因为GridLayout里面的组件是在变化的,所有需要动态设置子组件的Size和它们之间的间距。
还可以这么做:在父类容器中把子类容器的参数通过修改子类容器构造函数的方式传给子类容器,这样就可以在父类容器中直接修改子类容器的属性了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说实话这个问题我研究很久了,据我所知答案是没有办法的。用了几种方法来改变大小,他就是不搭理,一点用没。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询