我正在創建一個應用程序,如果在擴展\ minimizing時可以保持寬高比,我相信會更好。我將最小尺寸設置爲1000x800,並希望它保持5:4的比例。如何保持JFrame的高寬比
是否有一種方法已經或將需要我自己添加一個事件處理程序,檢查幀是否已被調整大小,它會給它最接近的大小?重複
PS.If問題是我很抱歉,我無法找到它
編輯
謝謝大家誰幫我完成這件事。這裏是我如何保持我的應用程序的大小,以滿足所用屏幕的大小,而不會太大或太小並保持縱橫比。 乾杯
int width = frame.getBounds().width;
GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
if (width > gd.getDisplayMode().getWidth())
width = gd.getDisplayMode().getWidth();
while (width*4/5 > gd.getDisplayMode().getHeight())
width = (int) (width - width*0.1);
frame.setBounds(frame.getBounds().x, frame.getBounds().y, width, width*4/5);
坦白地說,保持內容的縱橫比會更容易和更簡單,消除窗口被系統最大化時可能發生的任何奇怪現象:P – MadProgrammer
@MadProgrammer但是如果我這樣做,框架看起來很奇怪,我也不確定它是否可能,因爲除框架以外的所有組件的大小已由佈局管理器設置 –
因此?首先設計一個佈局管理器,它着重於維護單個容器的比例,然後將其餘組件添加到該容器中。 – MadProgrammer