我试图使用添加到JScrollPane中的不可编辑的JTextArea。我希望当用户点击那个特定的行时,一行被突出显示。我可以使用以下代码实现这一部分:
public static void initHighlightOption(final JTextArea textArea){
textArea.setFont(new Font("Courier New", Font.PLAIN, 12));
textArea.setEditable(false);
final Action selectLine = getAction(textArea, DefaultEditorKit.selectLineAction);
textArea.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (SwingUtilities.isLeftMouseButton(e) && e.getClickCount() == 1) {
selectLine.actionPerformed(null);
}
});
textArea.setSelectionStart(0);
textArea.setSelectionEnd(0);
}
public static Action getAction(JTextArea textArea, String name) {
Action action = null;
Action[] actions = textArea.getActions();
for (int i = 0; i < actions.length; i++) {
if (name.equals(actions[i].getValue(Action.NAME).toString())) {
action = actions[i];
break;
}
}
return action;
}
我想添加的是,一旦一行被高亮显示,用户使用键盘上/下键向上/向下滚动,我希望当前行被高亮显示。通过添加KeyListener可以做到这一点吗?我被如何在滚动时高亮显示数据所困扰。
文本区域包含如下数据:
Line1
Line2
Line3
Line4
Line5
(即在两个特定的数据行之间可能有新的行)
你的要求不是那么容易做到的。首先,使用JTextPane而不是JTextTarea,它会更容易处理。您将需要从它获得荧光笔对象
Highlighter hl = textPane.getHighlighter();
而且,每次用户使用箭头键滚动时,您可能必须跟踪插入符号的位置。在这样做时,您需要通过编程方式更改高亮显示;类似于:
Highlighter.Highlight myHighlight = null;
Highlighter.Highlight[] highlights = textPane.getHighlighter().getHighlights();
myHighlight = highlights[0]; //assuming there is one only
try {
hl.changeHighlight(myHighlight, myHighlight.getStartOffset()+1, myHighlight.getEndOffset());
}
catch(BadLocationException e) {
e.printStackTrace();
}
您可能可以将其放在onkeyRelease()方法中。你有点明白你要做什么了。在Java API文档中阅读有关使用JTextPane和Highlighter类的内容,它将真正帮助您。
问题内容: 我是iOS开发的新手。现在,当我向下滚动并且向上滚动时,我想隐藏我的标签栏。我希望以与导航栏相同的方式对此进行动画处理。对于导航栏,我只需单击“属性”检查器中的选项。我看到了工具栏的一些示例,但是我不能采用它作为标签栏。 只是隐藏了我的标签栏,但它没有像导航控制器那样具有动画效果。 问题答案: 这是我在生产应用程序中实际使用的代码。 它在 Swift中 ,还更新了var。 您还可以使用
问题内容: 我创建了一个带有JTextArea的JFrame。我想在每次追加后自动向下滚动文本区域。我应该如何处理? 我已经尝试过,但是什么都没有改变。 问题答案: 有两种方法(但必须将JTextArea放在JScrollPane中) a)设置插入符号(方法正确) 例如 b)从(从)移至最大值
我在Selenium 1(又名Selenium RC)中编写了以下代码,用于使用java滚动页面: Selenium 2(WebDriver)中的等效代码是什么?
问题内容: 我很好奇是否有人知道一旦/当用户完成在网页上的文本选择后,我将如何触发一个函数运行?我希望用户能够选择文本,并且在短暂的延迟后(或立即,此时无所谓),文本附近会出现一个叠加按钮,用户可以单击该按钮,然后我返回并运行我的更多基于选择的代码。这是用于Firefox扩展。 我能想到的一个类似示例就像在IE中一样,您可以在其中选择文本,然后显示“ Web加速器”。我99%确信我知道如何实际覆盖
问题内容: 我已经在Selenium 1(又名Selenium RC)中编写了以下代码,以便使用Java进行页面滚动: Selenium 2(WebDriver)中的等效代码是什么? 问题答案: 对于向下滚动: 或者,您可以执行以下操作: 对于向上滚动:
本文向大家介绍vim 向下滚动,包括了vim 向下滚动的使用技巧和注意事项,需要的朋友参考一下 示例 命令 描述 Ctrl+E 向下滚动一行。 Ctrl+D 向下滚动半屏(可使用该scroll选项配置)。 Ctrl+F 向下滚动全屏。 z+ 在窗口顶部的窗口下方绘制第一行。