1 Star 0 Fork 0

RichardTang/FlatLafTabFrame

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

FlatLafTabFrame

介绍

如果你正在使用Swing + FLatLaf来制作GUI程序,那么你可能会需要以下效果。像IntelliJ里的面板那样

这是一个精简的效果,它只能放在Bottom的方向进行使用,他只依赖FLatLaf,在Java8和Java11上都可以正常运行。

show

image

Demo

另外这个项目不会打包成Jar包,因为他只有仅仅的五个类,你可以直接copy到自己项目中直接进行使用,方便进行调整。下边的代码对应了上边gif图片的案例

package com.richardtang.flatlaftabframe;

import com.formdev.flatlaf.FlatLightLaf;
import com.formdev.flatlaf.extras.FlatSVGIcon;
import com.formdev.flatlaf.icons.FlatClearIcon;

import javax.swing.*;
import javax.swing.border.TitledBorder;
import java.awt.*;

public class Main {

    static {
        FlatLightLaf.setup();
    }

    public static void main(String[] args) {
        JTextArea jTextArea = new JTextArea();
        JButton cleanButton = new JButton(new FlatClearIcon());
        cleanButton.addActionListener(e -> {
            jTextArea.append("关闭按钮触发\n");
        });

        // 创建日志按钮选项
        TabFrameItem tabFrameItem = new TabFrameItem(
                new JToggleButton("日志", new FlatSVGIcon("log.svg", 20, 20)),
                new JTextArea(),
                cleanButton
        );
        // 创建信息按钮选项
        TabFrameItem tabFrameItem2 = new TabFrameItem(
                new JToggleButton("信息", new FlatSVGIcon("about.svg", 20, 20)),
                new JLabel("Author RichardTang")
        );
        // 将两个选项添加至面板中
        TabFramePanel tabFramePanel = new TabFramePanel(tabFrameItem, tabFrameItem2);

        // 在面板右下角添加一个进度条
        JProgressBar jProgressBar = new JProgressBar();
        jProgressBar.setMinimum(0);
        jProgressBar.setMaximum(100);
        jProgressBar.setStringPainted(true);
        JPanel jProgressBarPanel = new JPanel();
        jProgressBarPanel.add(jProgressBar);
        tabFramePanel.getTabFrameBar().addBarRightItem(jProgressBarPanel);

        JPanel jPanel = new JPanel();
        jPanel.setLayout(new BorderLayout());
        jPanel.add(jTextArea, BorderLayout.CENTER);
        jPanel.add(tabFramePanel, BorderLayout.SOUTH);

        JFrame jFrame = new JFrame();
        jFrame.setSize(600, 800);
        jFrame.setVisible(true);
        jFrame.setContentPane(jPanel);
    }
}

其他

如果你想实现复杂的布局的话,可参考以下的资料,下边的资料中其实都已经实现了这些效果。但是他们依赖的东西太多或者太过陈旧。

空文件

简介

基于FlatLaf-UI实现类似IntelliJ中的面板(精简版) 展开 收起
Java
取消

发行版

暂无发行版

贡献者 (2)

全部

近期动态

2年多前创建了仓库
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/Richard-Tang/FlatLafTabFrame.git
git@gitee.com:Richard-Tang/FlatLafTabFrame.git
Richard-Tang
FlatLafTabFrame
FlatLafTabFrame
main

搜索帮助