服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

按照屏幕比例改变窗口大小


  java abstract window toolkit (awt,抽象窗口工具包) 允许开发者通过setsize方法按照点来精确改变窗口大小。不过有时候用百分比或比例来指定窗口大小更容易。
  
  下面的这个基本方法可以实现以上功能。窗口大小是一个“int”值,所以先将double值转换为int,改变值就可以改变窗口大小了。
  
  /**
  
  * resizes the given window to the givenratio of the screen size
  
  *
  
  * @param w window to resize.
  
  * @param ratiox double value to changethe window horizontal size to.
  
  * @param ratioy double value to changethe window vertical size to.
  
  */
  
  static public void sizewindowonscreen(window w double ratiox double ratioy)
  
  {
  
  // java.awt.toolkit
  
  toolkit tk = w.gettoolkit();
  
  // java.awt.dimension
  
  dimension scrn = tk.getscreensize();
  
  w.setsize( new dimension((int)(scrn.width * ratiox)
  
  (int)(scrn.height * ratioy)
  
  ) );
  
  }
  
  static public void sizewindowonscreen(window w double ratio) {
  
  sizewindowonscreen(w ratio ratio);
  
  }
  
  不少开发者还是喜欢用百分比而不是比例(ratios)。比例和百分比之间只是一个数学上的转换,并不影响api 对方法的调用。
  
  应该确保经常用到方法,这样,每个逻辑大小会被存放在不同区域,通过使用sizewindowonscreen (window, double, double) 方法,百分比与比例的转换会在一个区域里进行,实际的大小不是被拷贝而是被重用了。例如:
  
  static publicvoid resizewindowtoscreenpercentage(window w double perc) {
  
  resizewindowtoscreenpercentage(wperc perc);
  
  }
  
  static public void resizewindowtoscreenpercentage(window w double percx double percy)
  
  {
  
  sizewindowonscreen(w percx/100percy/100);
  
  }
  
  最后,也许有人希望把窗口大小设定为屏幕大小,maxwindowonscreen 这个方法可以实现上述功能。如下所示:
  
  static publicvoid maxwindowonscreen(window w) {
  
  sizewindowonscreen(w 1.0 1.0);
  
  }

扫描关注微信公众号