我正在尝试创建一个代码,使用 Jframe 在 java 中模拟 MS Paint。我想创建一个像MS Paint这样的文本框,您可以在其中拖动一个框,然后根据您的喜好为其设置大小。我所做的是先画一个矩形,然后通过鼠标事件侦听器获取尺寸,并将这些值传递给创建给定大小和宽度的 JtextArea 的函数。但是,我需要扩展 Jframe 类,该类在已经存在的帧之上创建一个新帧。我尝试将我的原始框架作为参数传递给 JtextArea ,这不起作用。有没有办法在不扩展框架类的情况下实现 JtextArea?如果可能的话,任何相关示例来绘制类似于MS Paint的文本框。请注意,我不想使用 Graphics.drawstring 方法。谢谢。
由于您不想直接使用 drawString()
,因此 java.awt.font.TextLayout
可能是呈现文本的最佳选择。
创建一个临时JTextArea
,并使用要放置在矩形上的空布局添加到绘图面板。
编辑完成后(输入文本),删除临时文本区域,获取用户输入的文本并将其绘制在原始矩形中。