我很難正確設置擺動組件在調整大小時的行爲方式。Java UI:在調整大小時設置擺動組件行爲
我有兩個問題與該接口:
答:在每一行開頭的切換按鈕是這裏摺疊/展開文本。所有元素都包含在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
的值,這意味着右側滾動條不會粘到框架的右側。
見的這兩個問題的演示如下:
關於B點:設置我的'backgroundPane'的大小和我的幀(由'JScrollPane',其大小現在設置得含)解決了這個問題。 – Florent