我希望在使用MigLayout到达屏幕的“边缘”时包装JPanel.目前我有一个JScrollPane(我只想在veritcally中启用). JScrollPane包含任意数量的水平排列的JPanel – 当添加一个面板时,jpanel将离开边缘,我希望它添加到下一行.这可能吗?
这是代码:
public void setupPanels(){
JScrollPane scrollPane = new JScrollPane();
JPanel mainPanel = new JPanel(new MigLayout("insets 2"));
for (Object object : objects){
JPanel subPanel = new JPanel(new MigLayout("insets 0"));
mainPanel.add(subPanel, "alignx left, gapx 2px 5px, gapy 2px 2px, top");
}
scrollPane.setViewportView(mainPanel);
}
另外,为了增加一个额外的因素,每当它到达边缘时我需要添加一个新的/不同的面板(时间轴) – 那么有没有办法找出什么时候它将换行?
谢谢,
最佳答案 MigLayout没有这样的功能.它基于网格,虽然您可以使用nogrid选项在单元格范围内水平或垂直流动组件,但您无法使它们流入下一行或列.
JDK中包含的java.awt.FlowLayout自动包装所包含的组件:
JPanel mainPanel = new JPanel(new FlowLayout());
mainPanel.add(subPanel1)