在Java中使所有工具提示多行(Swing)
我的应用程序中的工具提示可能很长,因此我希望它们有换行符 我不想使用html,因为我更喜欢设置工具提示的(最大)宽度,并动态换行 在接受的答案中,我读到了关于在Java中使所有工具提示多行(Swing),java,swing,tooltip,Java,Swing,Tooltip,我的应用程序中的工具提示可能很长,因此我希望它们有换行符 我不想使用html,因为我更喜欢设置工具提示的(最大)宽度,并动态换行 在接受的答案中,我读到了关于JMultiLineToolTip的类似问题。不幸的是,提供的链接不再起作用,并且存在许多不同的JMultiLineToolTip。因此,我有两个问题: 哪个JMultiLineToolTip是好的使用方法 如何使用这样的类来表示应用程序中的所有工具提示 编辑:似乎每个人都推荐使用html,有没有办法用html定义我的工具提示的宽度(像素或
JMultiLineToolTip
的类似问题。不幸的是,提供的链接不再起作用,并且存在许多不同的JMultiLineToolTip
。因此,我有两个问题:
JMultiLineToolTip
是好的使用方法编辑:似乎每个人都推荐使用html,有没有办法用html定义我的工具提示的宽度(像素或字符数以外的其他单位)?如果您不怕扩展swing工具提示,您可以创建自己的JMultiLineToolTip:
paint()
方法以多行方式写入给定字符串
UIManager
注册自定义工具提示UI
UIManager.put(“工具提示”、“SeNormToolTipUI”)代码>
UIManager.put(“SeNormToolTipUI”,Class.forName(multilitooltipuiclassname))代码>
(二)复杂方式
您必须开始实现自己的外观。在look-and-feel实现中,您将为ToolTipUI
提供默认值作为您的UI实现,然后将该look-and-feel设置为您正在运行的应用程序。例如,请看一看。您可以扩展该部分并在lnf上实现您的
1)Html
是简单的JToolTip
2) 使用JWindow
(未修饰的JDialog
)和JTextArea
,最好是JTextPane
(支持手写文本)
- 缺点是您必须手动将窗口设置为
,必须手动设置点
和setInitialDelay
(摆动计时器),setDismissDelay
setVisible(真/假)
- 其优点是,您可以使用完整的可管理顶级容器,并为自己的父容器定义
3) 我使用
JLabel
将Html
格式化和样式化文本添加到GlassPane
,注意最简单的替代方法是使用非不透明JLayeredPane
(Java6)或JLayer
(Java7)我不是说复杂=困难。我的意思是,这是不必要的。