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 实现鼠标改变高度的主要内容,如果未能解决你的问题,请参考以下文章