JAVAFX 屏幕适配

我们在做桌面应用的时候经常需要 在最大化的时候,让部分控件跟随窗口大小变化而变化。

这个时候我们需要 利用VBox 或者HBox 作为根布局,再将需要跟随屏幕子控件设置 VBox.vgrow="ALWAYS" 或者 HBox.hgrow="ALWAYS" 即可,下面以下图为例

 

 

上两张图一张是正常模式,一张是最大化下没有设置屏幕适配的状态下,特别的不美观,接下来我们设置一下,

 

 

是不是好看很多,左边的列表,和右侧的选项卡跟随了屏幕变化,但是图片中的选项卡里面的内容是不是没有跟随TabPane的大小变化而变化呢,接下来在处理TabPane 子项的屏幕填充,先看上面的布局代码









   
      
         
             
                 
                     
                     
                     
                     
                     
                     
                 
             
         
       
         
             
                 
                     
                     
                     
                 
             
             
                 
                     
                         
                             
                         
                     
                     
                         
                             
                         
                     
                 
               
                  
               
             
         
         
            
         
      
         
            
         
         
            
         
            
         
      
   

下面我们来处理 选项卡里面的内容撑开,看上图的选项卡中,感觉是没有被撑开,子项中的背景色设置成了橘黄色,这是因为创建fmxl的时候,默认给根布局设置了 maxHeight="-Infinity" maxWidth="-Infinity" 只要将子项的根下的这行去掉即可,接下来看效果

 

这样是不是好看很多的,跟最开始的效果比起来是不是会好很多,跟初始状态比较,是不是更可以接受一些了,当然还可以继续优化。JavaFX 屏幕最大化适配先写到这里。代码附上








   
      
         
            
               
                   

   至于为什么选择JavaFX做桌面软件,因为平时用java用的多web ,安卓都在用java,但是java写桌面体验太差了,之前一直用arrdio这个小工具在写桌面程序,这个小软件,开发快,布局拖拽 对齐 方便快捷,桌面应用的首选,缺点就是比较小众,可借鉴的文章不多,C#呢,也不是没考虑过,玩了一阵子感觉没兴趣了,哈哈,至于为什么选JavaFX,一来是学习,而来是arrdio的网络库inet.whttp 模拟提交数据的时候,经常会因为服务器更改了之后造成需要更改头部(header),貌似java用okhttp,就没那么多问题了,强大的okhttp,哈哈,最近也是抱着学习的态度,拿这个之前写的小软件练练手。

你可能感兴趣的:(Java,javafx,java)