Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JLabel设置为窗口的百分比_Java_Swing_Jlabel_Layout Manager_Dimensions - Fatal编程技术网

Java 将JLabel设置为窗口的百分比

Java 将JLabel设置为窗口的百分比,java,swing,jlabel,layout-manager,dimensions,Java,Swing,Jlabel,Layout Manager,Dimensions,我有一个JLabel,我想将高度和宽度都设置为JFrame的百分比,比如10%。如何在Java中实现这一点?我有JLabel命名外观和JFrame命名屏幕 JFrame screen = new JFrame("Example"); 谢谢!感谢所有帮助我不确定我是否理解单个组件占据10%屏幕的意义。我发现通常有比控制这样的东西更好的解决方案。如果您能对框架上的所有组件给出更完整的要求,我相信我们能找到更好的解决方案。@camickr解释整个问题有点困难,但基本上屏幕上有一些jlabel和jb

我有一个
JLabel
,我想将高度和宽度都设置为
JFrame
的百分比,比如10%。如何在Java中实现这一点?我有
JLabel
命名外观和
JFrame
命名屏幕

JFrame screen = new JFrame("Example");


谢谢!感谢所有帮助

我不确定我是否理解单个组件占据10%屏幕的意义。我发现通常有比控制这样的东西更好的解决方案。如果您能对框架上的所有组件给出更完整的要求,我相信我们能找到更好的解决方案。@camickr解释整个问题有点困难,但基本上屏幕上有一些jlabel和jbutton。我想让所有的组合填满整个屏幕。我不想设置一个数字,因为我希望所有的东西都能在窗口改变大小时调整大小。因此,1个JLabel可能会占用10%的宽度,再占用40%的宽度,依此类推。希望这是有意义的如果你不能解释你的要求,我不知道我们能提供什么帮助。您不应该为组件指定百分比,而应该让组件随可用空间增长/收缩。文本标签不会增长,但滚动窗格中的文本区域可能会增长。使用布局管理器的适当组合来实现您的期望要求,但硬编码大小/百分比不是实现这一目标的方法。
c.weightx=0.1
c.weighty=0.1
。您还可能需要
c.fill=GridBagConstraints.两者都需要。这只会直接根据其父容器的大小调整标签的大小…@camickr我希望JLabel的宽度占屏幕的10%,因此如果调整了其大小,它将占屏幕的相同比例。然而,如果使用宽度=10(大多数定义都不正确,因为我不确定如何设置),则无论屏幕大小如何,都会设置宽度。百分比可能不是我想要的,但它会占据屏幕的一部分,无论窗口大小如何,都是一样的。
JPanel lookReplyGUIPanel = new JPanel(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
JLabel lookx = new JLabel("something");
c.gridx = x+1;
c.gridy = y+1;     
lookReplyGUIPanel.add(lookx,c);