我目前正在尝试将图像(带有 Jlabel)显示到 JEditorPane 上。我正在使用 Swixml 和表单布局,我将 JLabel 和 JEditorPane 放在同一个地方。所以我简单地将“setVisible”设置为true或false以使图像出现。
到目前为止,一切都很好。但是当有人试图在 JEditorPane 中选择文本时,这很丑:
我尝试了一些事情:
禁用 JEditorPane :
没有效果,即使选择不可见,文本也会出现在 JLabel 上。
重绘:
当我重新绘制 JLabel 时,它会再次被推到前面,但我必须重复执行(例如每 50 毫秒一次)以使其不可见;
我也尝试在选择时重新绘制,但效果不佳,某些情况只是被忽略了,或者变慢了仍然很难看
最后一个想法是在 JLabel 显示时阻止鼠标进入 JEditorPane,但是 MouseEnter 事件不允许我从 EditorPane 中获取点,因此很难将光标放在 JEditorPane 之外的好位置...
我尝试了 setComponentZOrder,但我无法让它正常工作(我当然滥用了它),但我认为它不能解决我的问题,因为它只会改变绘画顺序(最后一个要绘画的东西在 Java 的顶部) ),但这显然是一个重绘问题。
指出我被迫使用 Java 1.6 应该很有用(我必须在 Java 1.7 和 1.8 中使用的相同命名类之间的冲突,Sun 的更改日志谈到了 1.9 中的修复......)
上下文是一个小程序,如果我无法理解(英语不是我的母语),请不要犹豫,纠正我并问我。
感谢您的帮助!