我注意到有時內容窗格在初始化後會改變它的大小,並想知道爲什麼會這樣。ContentPane在初始化後更改大小 - 爲什麼?
下面是一些代碼在模擬器上證明這一點 - 在模擬器中運行它並觀察輸出 - 更小的皮膚有小的差異:
public class FormScrollExtras extends Form {
private int entrytally = 0;
private Runnable runnableLog = null;
public FormScrollExtras() {
setTitle("FormScrollExtras");
setScrollable(false);
setTensileDragEnabled(false);
Container contentPane = getContentPane();
contentPane.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
contentPane.setScrollableY(true);
contentPane.setTensileDragEnabled(false);
TextArea textArea = new TextArea("This form logs the content panes height and layoutHeight - right after init and whenever an entry is created.");
textArea.setEditable(false);
contentPane.add(textArea);
FloatingActionButton floatingActionButton = FloatingActionButton.createFAB(FontImage2.MATERIAL_ADD);
floatingActionButton.bindFabToContainer(getContentPane(), Component.RIGHT, Component.BOTTOM);
floatingActionButton.addActionListener((e) -> newEntry(contentPane));
contentPane.getParent().layoutContainer(); // Doesn't make a difference
runnableLog =() -> {
Log.p("x/y, height/layoutHeight: " +
contentPane.getAbsoluteX() + "/" + contentPane.getAbsoluteY() + ", " +
contentPane.getHeight() + "/" + contentPane.getLayoutHeight());
};
runnableLog.run();
}
private void newEntry(Container contentPane) {
contentPane.add(new Label("" + ++entrytally));
runnableLog.run();
contentPane.repaint();
}
}
顯然,工具欄更改大小 –
所以我想知道當爲contentPane添加內容時爲什麼工具欄會改變其大小 –