我想设置左坐标和另一个面板内的面板宽度。
innerPanel.setBounds(/* expects a rectangle that
specifies y and height, which I would not like to set */);
setBounds
我希望我指定y
坐标和height
,这是我不想设置的,因为我想在此面板中垂直堆叠,就像Stack Layout
(VJ ++中存在的旧布局,Java的Microsoft副本)或GridLayout(0, 1)
。
请参见下图。
这些书中的每一本都是较大面板内的面板。我希望他们在左边有一些空间,在右边有一些空间,然后我想用自动换行说明。
如何只设置左坐标和宽度而不触及其他两个变量?
答案 0 :(得分:2)
根据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);
}
}
现在看起来好多了。
只是,现在我还有一些事情需要处理,例如:
但这些不是我在问题中提到的问题,所以他的建议充分解决了我的问题。
答案 1 :(得分:0)
如果您使用的是任何布局管理器,setBounds()
无论如何都无效。只需使用setPreferredSize()
指定宽度和高度。
我很有可能没有完全理解你的要求。如果您想要显示组件的显示方式,那将有所帮助,然后我可以建议实现这一目标的最佳布局。