Java高亮显示被选中文本:StyledDocument.setCharacterAttributes()
来源:互联网 发布:国内数据交易平台 编辑:程序博客网 时间:2024/06/06 00:08
Java高亮显示被选中文本:StyledDocument.setCharacterAttributes()
复用代码
javax.swing.text.JTextComponent。requestFocus();
javax.swing.text.JTextComponent。select(start, end);
javax.swing.text.JTextComponent。select(start, end);
不获得焦点,文本被选中但不会高亮。
-----------------------
hxzon:上面的方式转移了焦点,更好的方式如下:
hxzon:上面的方式转移了焦点,更好的方式如下:
JTextPane hexPane;
SimpleAttributeSet notSelected;
SimpleAttributeSet selected;
StyledDocument doc;
//设置样式
notSelected = new SimpleAttributeSet();
selected = new SimpleAttributeSet(notSelected);
StyleConstants.setForeground(selected, new DefaultTreeCellRenderer().getTextSelectionColor());
StyleConstants.setBackground(selected, new DefaultTreeCellRenderer().getBackgroundSelectionColor());
//文本内容
hexPane.setText(packet.messageToHex());
//高亮显示被选中文本
goosetree.addTreeSelectionListener(new TreeSelectionListener() {
SimpleAttributeSet notSelected;
SimpleAttributeSet selected;
StyledDocument doc;
//设置样式
notSelected = new SimpleAttributeSet();
selected = new SimpleAttributeSet(notSelected);
StyleConstants.setForeground(selected, new DefaultTreeCellRenderer().getTextSelectionColor());
StyleConstants.setBackground(selected, new DefaultTreeCellRenderer().getBackgroundSelectionColor());
//文本内容
hexPane.setText(packet.messageToHex());
//高亮显示被选中文本
goosetree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
TreePath treePath = e.getPath();
if (treePath == null) {
return;
}
DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath
.getLastPathComponent();
int offset = 0;
int len = 0;
if (node.getUserObject() instanceof PropertyNode) {
PropertyNode leaf = (PropertyNode) node.getUserObject();
offset = leaf.offset;
len = leaf.len;
}
else if (node.getUserObject() instanceof GooseNode) {
GooseNode leaf = (GooseNode) node.getUserObject();
offset = leaf.offset;
len = leaf.len;
}
else if (node.getUserObject() instanceof DatasetNode) {
DatasetNode leaf = (DatasetNode) node.getUserObject();
offset = leaf.offset;
len = leaf.len;
}
int end = offset + len;
offset = offset * 2 + offset;
end = end * 2 + end;
offset += offset / 48;
end += end / 48 - 1;
// hexPane.requestFocus();
doc=hexPane.getStyledDocument();
doc.setCharacterAttributes(0, doc.getLength(), notSelected, true);
doc.setCharacterAttributes(offset, end - offset, selected, true);
hexPane.select(offset, end);//加上此句,当选中文本不可见时滚动条自动滚动
}
TreePath treePath = e.getPath();
if (treePath == null) {
return;
}
DefaultMutableTreeNode node = (DefaultMutableTreeNode) treePath
.getLastPathComponent();
int offset = 0;
int len = 0;
if (node.getUserObject() instanceof PropertyNode) {
PropertyNode leaf = (PropertyNode) node.getUserObject();
offset = leaf.offset;
len = leaf.len;
}
else if (node.getUserObject() instanceof GooseNode) {
GooseNode leaf = (GooseNode) node.getUserObject();
offset = leaf.offset;
len = leaf.len;
}
else if (node.getUserObject() instanceof DatasetNode) {
DatasetNode leaf = (DatasetNode) node.getUserObject();
offset = leaf.offset;
len = leaf.len;
}
int end = offset + len;
offset = offset * 2 + offset;
end = end * 2 + end;
offset += offset / 48;
end += end / 48 - 1;
// hexPane.requestFocus();
doc=hexPane.getStyledDocument();
doc.setCharacterAttributes(0, doc.getLength(), notSelected, true);
doc.setCharacterAttributes(offset, end - offset, selected, true);
hexPane.select(offset, end);//加上此句,当选中文本不可见时滚动条自动滚动
}
});
- Java高亮显示被选中文本:StyledDocument.setCharacterAttributes()
- MyEclipse设置JAVA选中高亮显示
- MyEclipse设置JAVA选中高亮显示
- MyEclipse设置JAVA选中高亮显示
- MyEclipse设置JAVA选中高亮显示
- MyEclipse设置JAVA选中高亮显示
- MyEclipse设置JAVA选中高亮显示
- MyEclipse设置JAVA选中高亮显示
- CSS3:高亮文本选中颜色
- JQuery 高亮显示文本
- listview 选中高亮显示实现方法
- Android ListView item 选中高亮显示
- clistctrl选中高亮依次显示
- listview 选中高亮显示实现方法
- CListCtrl控件选中并高亮显示
- TextView如何高亮显示文本
- TextView如何高亮显示文本
- javascript设置文本高亮显示
- 小木棍
- Struts2与Struts1的对比
- ERP系统2011.7.14日更新记录
- 以某种格式重命名目录下所有文件(ruby实现)
- linux使用技巧
- Java高亮显示被选中文本:StyledDocument.setCharacterAttributes()
- 一个项目经理的经验总结
- 正则表达式验证
- c++ pirmer 学习笔记之参数的传递
- 程序员人生之路
- HP ALM 11 中文教程
- 五十四句关于人性的些许总结
- Struts2学习笔记
- 关于学习