我很难正确设置我的挥杆组件在调整大小时的行为方式。
该界面有两个问题:
A:每行开头的切换按钮用于折叠/展开文本。所有元素都包含在 JLayeredPane 中。单击按钮时,我编辑窗格的高度以展开或折叠内容(31 或 310)。Expand
工作正常并推动下面的元素。另一方面,collapse
确实隐藏了文本,但将所有元素保留在原位。这是我的代码:
private void expandText(java.awt.event.ActionEvent evt) {
JToggleButton button = (JToggleButton) evt.getSource();
Container parent = button.getParent();
Dimension size = parent.getSize();
String icon;
if (button.isSelected()) {
size.height = 310;
icon = "/org/cytoscape/ocsana/resources/images/minus.png";
} else {
size.height = 31;
icon = "/org/cytoscape/ocsana/resources/images/plus.png";
}
parent.setSize(size);
try {
button.setIcon(new ImageIcon(ImageIO.read(getClass().getResource(icon)).getScaledInstance(-1, 15, Image.SCALE_SMOOTH)));
} catch (IOException ex) {
}
backgroundPane.revalidate();
backgroundPane.repaint();
}
B:上面的截图是窗口的最小尺寸。当我水平调整窗口大小时,内部窗格仅调整为min + (frame.width - min) / 2
意味着我的右滚动条不会粘在框架右侧的值。
请参阅下面的两个问题的演示: