【发布时间】:2018-05-09 13:16:05
【问题描述】:
是否有可能当我们使用Java的setBounds(x,y,width,height)方法时,如果我们更换机器(不同尺寸的显示器或任何多种尺寸的显示设备),组件可以从一个地方改变到另一个地方,并且setBounds(new Rectangle(x,y,width,height))方法不会受到影响从同一个问题。
如果我说的是正确的,有人可以帮助理解这一点吗?
【问题讨论】:
-
您是指
setBounds上的JFrame,具体而言?在任何情况下,这两种方法都应该具有 same 行为。 (当然,除非其中一种方法以令人困惑的方式被覆盖......) -
在我的一个项目中,我使用 setBounds(x,y,width,height) 在 JFrame 上设置摆动组件。用户界面和我预期的完全一样。但是我尝试在不同的机器上运行相同的代码,我注意到组件没有像在我的本地(在我的笔记本电脑上)上那样发生。那么 setBounds(new Rectangle(x,y,width,height)) 方法解决了这个问题吗?
-
最有可能:不,方法应该这样做。 但是当您使用
setBounds将组件在 另一个组件中定位时,这种行为就不足为奇了。您应该使用LayoutManager。在不同的操作系统上组件的大小可能不同(例如,JFrame中可用的空间将取决于标题栏的大小等) -
"是否有可能当我们使用Java的
setBounds(x,y,width,height)方法时,如果我们更换机器(不同尺寸的显示器或任何多尺寸显示设备),组件可以从一个地方改变到另一个地方.." 嗯.. 适应不同的屏幕条件正是 Java 布局管理器 的设计目的。学习使用它们,您将看到它们如何满足需要。另见What is the XY problem? -
如果我有第二次机会投票结束这个,我会选择带有文本的自定义原因 “OP 似乎想建立一个仅使用锡罐和绳子的卫星通信系统。 " ..也许我不能收回原来的'太宽泛'的关闭注释更好。