要做出一个像QQ聊天面板一样强大的输入框,用到了JTextPane.这两天一直在做这个,涉及到swing text的知识,网络上图片馆中基本没有资料,硬着头皮做了些.
当输入/wx时,显示微笑表情,程序里用了一个SimpleAttributeSet来修饰/wx这三个字符.
@Override
public MutableAttributeSet decorate(String rawString) {
Icon icon = FacePool.getPool().getFace(rawString);
if(icon != null){
SimpleAttributeSet attr = new SimpleAttributeSet();
StyleConstants.setIcon(attr, icon);
return attr;
}
return null;
}
调用JTextPane.getText() 得到的是字符串"/wx"
这里有一个问题就是,删除时必须回退三次才能把表情图片删除,本质是删除/wx这三个字符.
有没有办法做到只回退一次就把表情图片删除,并且删除了/wx.
谢谢.
- 大小: 17.4 KB
分享到:
相关推荐
### Java教学:Swing的使用详解 #### 一、Swing概述 Swing是Java平台提供的用于构建桌面应用程序GUI(图形用户界面)的一种工具包,它作为AWT(Abstract Window Toolkit)的扩展,提供了更为丰富且强大的GUI组件...
Java Swing 是Java GUI(图形用户界面)库的一部分,它提供了丰富的组件来构建桌面应用程序。在Swing中,处理日期和时间选择的控件是至关重要的,因为它们为用户提供了一个直观的方式来选择日期或时间,而无需手动...
这个“关于swing和swt的小练习”压缩包文件提供了一些实际的代码示例,帮助开发者深入理解这两种技术。 Swing是Java Foundation Classes (JFC)的一部分,由纯Java编写,因此具有跨平台性。它提供了丰富的组件集合,...
- `javax.swing.text.rtf`:处理RTF(Rich Text Format)文档。 - `javax.swing.tree`:与`JTree`组件相关的类,用于展示和操作树形数据结构。 - `javax.swing.undo`:提供了撤销/重做功能的支持,常用于文本编辑...
14. `javax.swing.text.rtf` - RTF(Rich Text Format)文档的支持。 ### Swing组件 Swing提供了大量的组件,包括按钮(JButton)、文本字段(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格...
- `swing.text`、`swing.text.html`、`swing.text.html.parser` 和 `swing.text.rtf` 都是用于显示和编辑文档的包。 #### 四、Swing 组件分类 Swing 组件可以根据其显示效果和功能进行分类。 ##### 1. 显示效果...
2. **Swing TextPane**: `javax.swing.text.TextPane` 是一个更复杂的文本组件,它支持富文本格式,可以显示不同样式的文本,如加粗、斜体、颜色等。TextPane 通常用于需要显示带有样式和格式的文本的应用,比如简单...
- `javax.swing.text`: 支持文本的显示和编辑功能。 #### 五、Swing的实际应用案例 - **示例1:简单Swing应用程序**:创建一个包含按钮和标签的简单窗口,展示如何使用Swing组件创建基本的GUI界面。 - **示例2:...
import javax.swing.text.DefaultFormatterFactory; import javax.swing.text.DateFormatter; JDatePicker picker = new JDatePicker(); picker.setDateFormatOverride(new SimpleDateFormat("dd/MM/yyyy")); ``` ...
Swing是Java编程语言中的一个图形用户界面(GUI)工具包,它是Java Foundation Classes (JFC)的一部分。在Swing中,我们可以通过多种组件来创建丰富的交互式应用,其中包括用于实现多选功能的控件。本篇文章将深入探讨...
- `javax.swing.text`: 提供文本处理能力。 - `javax.swing.undo`: 支持撤销操作。 以上介绍涵盖了Swing的基本概念、特点以及类层次结构。通过理解这些基础知识,开发者可以更好地利用Swing来构建高质量的图形用户...
可以使用java.text.SimpleDateFormat和java.time.format.DateTimeFormatter进行日期和时间的格式化,确保符合用户的区域设置。 7. **Swing Timer**: 除了显示时间,Swing还提供了javax.swing.Timer类,可以用来定时...
9. **TextComponent的复制和剪切功能**: JTextArea继承自TextComponent,我们可以通过它的getSelectedText方法获取选中文本,然后使用Clipboard API实现复制功能。剪切功能则需要清除选中文本并执行复制。 10. **...
这个小例子是关于如何使用`JFileChooser`创建一个简单的文件选择功能。 在Java Swing应用中,`JFileChooser`提供了两种主要模式:打开文件(OPEN_DIALOG)和保存文件(SAVE_DIALOG)。你可以通过设置`JFileChooser`...
- `getText() / setText(String text)`:获取或设置标签的文本内容。 - `getIcon() / setIcon(Icon icon)`:获取或设置标签的图标。 - `getHorizontalAlignment() / setHorizontalAlignment(int align)`:设置标签内...
8. `javax.swing.text`:包含处理文本的类和接口,如文本字段和文本区域。 9. `javax.swing.tree`:提供了`JTree`组件,用于显示层次结构的数据。 10. `javax.swing.undo`:提供了撤销/重做功能的实现,使得用户...
11. **`javax.swing.text`**: - 包含了与Swing文本组件相关的类,支持复杂文本处理和格式化。 12. **`javax.swing.text.html`**: - 提供了HTML文档支持,使Swing组件能够显示和编辑HTML内容。 13. **`javax....
6. **文本处理(Ch07-Text)**: Swing提供了JTextComponent家族用于处理文本输入和显示。这部分内容会涉及如何添加语法高亮、自动完成和搜索替换等功能。 7. **本地集成和打包(Ch11-NativeIntegrationAndPackaging...