标题有点混乱,但我将使用Java和Jframe。基本上,我希望能够单击表单上的任意位置并显示"文本区域/框"(也许使用 JTextField 或 JTextArea?我希望用户也能够编辑、删除和移动此字符串。
我想我需要一个动作侦听器来侦听表单上的点击。每次点击都会要求创建一个新的文本"框"。不过,我不确定如何使这个"框"可由用户编辑、删除或移动。
我也需要一种方法来存储字符串和坐标数据。简单地扩展 JTextField 或 JTextArea 以向它们添加坐标信息是个好主意吗?我看到 swing 是基于事件的,所以我需要某种触发器来"保存"文本(正在考虑输入键,但我意识到我希望用户能够输入多行字符串)。
任何想法将不胜感激。我熟悉Java,但对UI部分只有一点经验。
您需要一个MouseListener
来跟踪点击,而不是ActionListener
。
听起来你需要一个未经装饰的JInternalFrame
,里面有一个文本框JDesktopPane
. 但是,我认为您无法创建未经修饰的 JInternalFrame,也许可以从带有文本框的普通JInternalFrame
开始,然后在桌面窗格上单击鼠标时创建新框架。 然后看看是否可以使JInternalFrame
更像Window
。
另一条路由是自定义组件,可以执行您需要的所有操作。 这是可能的,只是更多的自定义代码。