1

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

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

我试图避免仅仅为了这样的事情重新创建整个 JTextComponent 代码,看起来它应该很简单。

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

4

1 回答 1

0

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

希望这会有所帮助。

于 2014-05-11T16:55:49.057 回答