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