我试图从数据库中一个接一个地动态地向jpanel添加组件,但是它们水平地超出了表单的限制(甚至是屏幕)。我正在使用BoxLayout的面板,它将内部组件定位在x轴上。我想要做的是限制在窗体边界(或容器面板边框)的x轴上添加组件。 我到目前为止尝试的是:
我应该制作自定义布局吗?任何比这简单的想法? 我的代码如下:
jpanelCases.setLayout(new BoxLayout(this.jpanelCases, BoxLayout.X_AXIS));
db = Database.getInstance();
List<Category> cats = db.getCategories();
for(Category c : cats){
JPanel jp = new JPanel();
//addition of other components to the newly created panel here
jpanelCases.add(jp);
}
答案 0 :(得分:0)
尝试放入2个胶水,最后一个胶水:
jpanelCases.setLayout(new BoxLayout(this.jpanelCases, BoxLayout.X_AXIS));
jpanelCases.add(Box.createHorizontalGlue());
db = Database.getInstance();
List<Category> cats = db.getCategories();
for(Category c : cats){
JPanel jp = new JPanel();
//addition of other components to the newly created panel here
jpanelCases.add(jp);
}
jpanelCases.add(Box.createHorizontalGlue());
答案 1 :(得分:0)
如何在JPanel上使用JScrollPane?这将包含面板内的元素,而不会超出其物理边界。否则,如果您不喜欢滚动的想法,我建议您以某种方式跟踪添加到面板的元素宽度与面板物理宽度的总和,并在下一个元素宽度添加到总和时停止添加元素超出面板宽度。
我希望这有帮助!
答案 2 :(得分:0)