Java 自定义窗格行为
各位程序员好 我有一个JEditorPane,用户应该在其中输入一系列数字(具有可选不确定性的数量),以分号分隔,例如:Java 自定义窗格行为,java,swing,jeditorpane,Java,Swing,Jeditorpane,各位程序员好 我有一个JEditorPane,用户应该在其中输入一系列数字(具有可选不确定性的数量),以分号分隔,例如: 3.0; 5.8; 70+-5; ... 然后将该列表映射到包含已解析数量的ArrayList包装器 我想为输入窗格实现一个特定的行为。例如按“;”或“”应插入“;”,在“;”之间按backspace/delete键和“”应同时删除这两个字符,并合并分隔的数字。切割和粘贴也有特定的行为,等等。我希望它是用户友好和直观的 我试过了,但它似乎太简单了,可能会弄乱插入符号/选择。
3.0; 5.8; 70+-5; ...
然后将该列表映射到包含已解析数量的ArrayList包装器
我想为输入窗格实现一个特定的行为。例如按“;”或“”应插入“;”,在“;”之间按backspace/delete键和“”应同时删除这两个字符,并合并分隔的数字。切割和粘贴也有特定的行为,等等。我希望它是用户友好和直观的
我试过了,但它似乎太简单了,可能会弄乱插入符号/选择。所以我想写我自己的子类,但是有很多东西需要实现,还有很多技术细节,我对此没有把握
我该怎么处理呢?有没有办法不用从头开始编写EditorIt就可以做到这一点?首先,我不会使用JEditorPane。窗格用于显示HTML。使用JTextArea或JTextPane会容易得多,因为它只包含文本,不需要担心标签 我尝试了DocumentFilter,但它似乎太简单了,可能会弄乱插入符号/选择 DocumentFilter设计用于多个文档,因此不知道您正在使用的实际文本组件。如果要控制插入符号位置,则需要将文本组件作为参数传递给DocumentFilter类 按“;”或“”应插入“;” 如果您不喜欢DocumentFilter,那么可能可以使用键绑定并处理keyTyped事件 在“;”之间按backspace/delete键和“”都应该删除 DocumentFilter应该可以工作,或者您可以再次使用键绑定。注意:对于退格键,我认为您需要处理Ctrl+H 切割和粘贴也有特定的行为 DocumentFilter不会作为更新文档的原因(即用户键入或用户粘贴)。您可以尝试覆盖文本组件的剪切/复制/粘贴方法 所以我想写我自己的StyledEditorKit子类,但是有很多操作需要实现
同意,我认为这太过分了。我选择了JEditorPane,因为我想要某种“语法突出显示”,但我会稍后再做。也许我会使用。我会考虑是否可以专门使用DocumentFilter来完成这项工作。感谢您提到键绑定,我没有考虑它们。使用HTML是一件痛苦的事情。使用带有属性的JTextPane来突出显示文本更容易。简单示例: