JTabbedPane 实现鼠标改变高度

Posted

技术标签:

【中文标题】JTabbedPane 实现鼠标改变高度【英文标题】:JTabbedPane Achieve mouse change height 【发布时间】:2021-11-29 15:29:21 【问题描述】:

Idea 有一个控制台窗口,看起来像是用 JTabbedPane 实现的

控制台窗口图片:

可以通过将鼠标悬停在其上来更改大小:

如何在 Swing 中实现这个 UI 效果?

JTabbedPane 可以有类似的效果,但不能用鼠标改变高度。

【问题讨论】:

把它放在JSplitPane. @AndrewThompson 仅供参考,这是 OP 的第一个问题:***.com/questions/69336246/… 该组件不是使用 JTabbedPane 实现的(它是开源的,因此您可以自己查看它是如何完成的)。由于您的其他问题暗示您希望自己实现整个选项卡式框架组件,您可能希望查看以下非常相似的实现:github.com/weisJ/darklaf/blob/master/core/src/main/java/com/… 很好,谢谢你! :) 我基于 FlatLaf 解决了我的问题,并将代码放在了 GitHub 上。 https://github.com/Richard-Tang/FlatLafTabFrame 【参考方案1】:

我基于 FlatLaf 解决了我的问题,并将代码放到了 GitHub 上。

https://github.com/Richard-Tang/FlatLafTabFrame

show

@Override
public void mouseDragged(MouseEvent e) 
    if (isDragged) 
        Dimension size = getSize();
        size.height += clickDraggedPanelPosition;
        size.height += Math.negateExact(e.getY());
        setPreferredSize(size);
        updateUI();
    

关键代码是在拖动时使用 setPreferredSize() 和 UpdateUI() 更改 JPanel 的高度。

【讨论】:

以上是关于JTabbedPane 实现鼠标改变高度的主要内容,如果未能解决你的问题,请参考以下文章

如何用JS获取鼠标滚动高度,再触发相应的事件。速救!!!

JAVA可折叠垂直布局

JS——事件详情(鼠标事件)

用js实现页面图片,以鼠标位置为中心,滚轮缩放图片

根据子导航高度而改变的导航

java里面的JTabbedPane选项卡里面添加的按钮怎么实现功能啊