我有一個按鈕可以在我的應用程式中打開一個 shell,它顯示了許多復選框,以及底部的 2 個按鈕。問題是它可能會因為它的高度太大而被切斷。
我想要的解決方案是將外殼的內容添加到 ScrollableComposite,這不起作用,因為外殼只是在高度上擴展,所以復合的滾動條不會做任何事情。
我認為最好的方法是計算外殼是否超出螢屏邊界,但我不明白它的坐標是如何作業的。外殼的父級是外殼,因此Shell::getBounds()
應該回傳相對于 display的坐標,但我認為在這種情況下我需要外殼相對于監視器的邊界(我可以通過Shell::getMonitor()
)。
我怎樣才能做到這一點 ?
uj5u.com熱心網友回復:
只需根據監視器大小而不是邊界設定外殼大小。
這是 Eclipse 啟動配置對話框用來確保它不會太大的內容:
protected void setShellSize(int width, int height) {
Rectangle bounds = getShell().getMonitor().getBounds();
getShell().setSize(Math.min(width, bounds.width), Math.min(height, bounds.height));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/470212.html