离屏JTextComponent

时间:2014-04-13 23:25:41

标签: paint jtextarea jtextcomponent off-screen

我正在制作一个绘画程序,我遇到了一些麻烦,想弄清楚如何制作一个文本工具。我想要做的是单击并拖动以使文本框出现在画布上。问题是我不希望这只是一个漂浮在我的canvas组件上的JTextComponent。当我移动它时会导致边框闪烁的问题,当我的鼠标紧挨着它时,我的光标部分看起来就像在文本框下面一样。

我要做的是创建一个JTextArea然后根据我的鼠标相对于画布上文本框的位置来触发mouseEvents。画布上的那个实际上只是我没有添加到任何组件的实际JTextArea的绘制表示(使用.getGraphics())。这个问题是你不能调用.getGraphics(),除非组件显示在屏幕上。

我试图避免重新创建整个  JTextComponent代码只是用于这样的事情,看起来应该很简单。

有没有人对此问题或其他想法有任何解决方案?

1 个答案:

答案 0 :(得分:0)

你可以制作一个JTabbedPane。 一个用于绘制面板的选项卡和另一个用于textPane的选项卡。 并且你可以给某个按钮提供动作监听器。 actionlistener应该为paint方法的图形提供Graphics.drawString(...); 字符串是textComponent给出的。在你的绘图程序中移动字符串是比较困难的,但你可以有一个mouseListener来识别鼠标拖动,这些将设置你的新(x,y)点Graphics.drawString(...);

希望这有点帮助。