2012年10月8日 星期一

JAVA AWT/SWING 根據螢幕大小決定視窗大小

最近網頁設計非常流行"浮動式版面"

根據螢幕大小決定版面
以百分比等等"相對"的大小取代"絕對"的大小

JAVA的JFrame當然也可以這樣做!




 protected static void myFrame(JMenuBar myMenu){
  
  //取得螢幕大小
  Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
  
  
  //建立Frame,設定標題
  JFrame j = new JFrame("我是視窗");
  
  //設定按XX時關閉程式
  j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
  //設定出現位置、大小-->根據螢幕尺寸調整
  j.setBounds(50, 50, (int) (screenSize.getHeight()*0.8),  (int) (screenSize.getWidth()*0.4));
  
  //設定MenuBar
  j.setJMenuBar(myMenu);
  
  //設為可見
  j.setVisible(true);
  

  
 }
 
關鍵就是取得視窗大小的方法

Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();

之後再利用Dimension類別裡的getWidth()、getHeight()方法來取得螢幕的高與寬~

 不過JFrame類別裡面的setBounds方法只接受四個int型態的數字,
所以還得強迫把getWidth()、getHeight()得到的double型態的大小轉為int囉~
j.setBounds(50, 50, (int) (screenSize.getHeight()*0.8),  (int) (screenSize.getWidth()*0.4));

沒有留言:

張貼留言