[英]How to set just the left coordinates and the width of a JPanel?
我想设置另一个面板内的一个面板的左坐标和宽度。
innerPanel.setBounds(/* expects a rectangle that
specifies y and height, which I would not like to set */);
setBounds
希望我也指定y
坐标和height
,这是我不想设置的,因为我想将东西垂直堆叠在此面板中,例如Stack Layout
(VJ ++中存在的旧布局, Microsoft的Java副本)或GridLayout(0, 1)
。
请参见下面的图片。
这些书中的每本书都是一个较大面板中的一个面板。 我希望他们在左边有一些空间,在右边有一些空间,然后我想用文字换行说明。
如何在不触摸其他两个变量的情况下仅设置左坐标和宽度 ?
按照安德鲁·汤普森(Andrew Thompson)的建议,我在包含所有书籍的面板周围创建了一个空边框,并且解决了在容器边缘周围定义填充或边距的问题。
public class BookRecommendationsContentPanel extends JPanel {
public BookRecommendationsContentPanel(JLabel lblStatus) {
super();
...
this.setBorder(new EmptyBorder(20, 20, 10, 20));
}
public void AddBook(Book book) {
JPanel pnlBook = new JPanel();
...
this.add(pnlBook);
}
}
现在看起来好多了。
只是,现在我还有更多事情要处理,例如:
但是这些不是我在问题中提到的问题,因此他的建议可以充分解决我的问题。
如果使用任何布局管理器,则setBounds()
无效。 只需使用setPreferredSize()
来指定宽度和高度。
我很可能尚未完全了解您的要求。 如果您放一张有关如何显示组件的图片,这将对您有所帮助,然后我可以建议实现此目的的最佳布局。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.