Swing中使用BeautyEye皮肤

Swing
placeholder image
admin 发布于:2017-07-10 09:08:14
阅读:loading

最近使用了swing开发程序,自带的几款皮肤看着确实不敢太恭维,就使用Windows当前的皮肤还是不错的,其他的皮肤主要是了解了一款强大的皮肤BeautyEye和weblaf(这俩非常的高大上),有需要可以在https://github.com/JackJiang2011/beautyeye下载,实际上在使用时想让效果与演示中的效果一致,即窗口的最大化、最小化等也有皮肤效果,为此将源码下载下来一点点扒出来总算是实现了效果,总结为不要使用传统构造JFrame的方式创建程序并显示,而是通过继承SingleFrameApplication的方式,复写其中的startup函数来做显示,它封装了一个Application程序常见的布局所需组件,如:Menu、Tab、MainPanel等,搞清楚这套逻辑后,代码比较简单,详细参考如下:

参考代码
package cn.chendd.ui;

import all;


public class SwingTheme extends SingleFrameApplication {

   public static void main(String[] args) throws Exception {

      //启动应用程序

      SwingTheme.launch(SwingTheme.class, args);

      BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.translucencyAppleLike;

       BeautyEyeLNFHelper.launchBeautyEyeLNF();

      UIManager.put("RootPane.setupButtonVisible"true);//显示设置

   }

 

   /**

    * 调用父类的启动函数

    */

   @Override

   protected void startup() {

       Viewview = getMainView();

      JComponentmainPanel = this.createMainPanel();

       view.setComponent(mainPanel);

      view.setMenuBar(this.createMenuBar());

       JFrameframe = (JFrame) view.getRootPane().getParent();

      frame.setSize(new Dimension(500, 300));

      frame.setTitle("小渣渣");

      frame.setLocationRelativeTo(null);

      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      frame.setVisible(true);

   }

  

   /**

    * 示例演示的代码,可不要

    */

   private JComponentcreateMainPanel() {

      JPanelmainPanel = newJPanel();

      mainPanel.setLayout(new BorderLayout());

      mainPanel.add(new JButton(""), BorderLayout.NORTH);

      mainPanel.add(new JButton(""), BorderLayout.SOUTH);

      mainPanel.add(new JButton(""), BorderLayout.EAST);

      mainPanel.add(new JButton(""), BorderLayout.WEST);

      mainPanel.add(new JButton("不服"), BorderLayout.CENTER);

      return mainPanel;

   }

 

   /**

    * 示例演示的代码,可不要

    */

   protected JMenuBarcreateMenuBar() {

      JMenuBarmenuBar = newJMenuBar();

      JMenufileMenu = newJMenu("文件(F) ");

      JMenusettingMenu = newJMenu("设置(S) ");

      JMenuhelpMenu = newJMenu("帮助(H) ");

       menuBar.add(fileMenu);

       menuBar.add(settingMenu);

       menuBar.add(helpMenu);

      return menuBar;

   }

} 

运行效果

效果图.jpg


 点赞


 发表评论

当前回复:作者

 评论列表


留言区