问题1:通过使用defaulthighlighter,我可以使聚焦线变为蓝色.现在我想把它换成其他颜色.有谁知道如何更改此参数? - - 解决了
问题2:pos是我想要突出显示的子串的起始索引.我用setCaretPosition(pos); 更新显示内容.但它总是出现在窗口的底部.我希望它在顶部.谁能告诉我如何处理?
我使用一个演示来显示我的问题:
import java.awt.Color;
import java.net.MalformedURLException;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter;
public class Test {
public static void main(final String[] args) throws MalformedURLException {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
try {
init();
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
private static void init() throws BadLocationException {
JFrame frame = new JFrame();
final JTextArea textArea …
Run Code Online (Sandbox Code Playgroud) 我正在使用 JTextPane 创建一个文本编辑器,它允许用户更改所选文本的颜色。但是,当用户选择文本,然后选择更改颜色的选项(例如,更改为红色)时,文本不会显示为红色,直到取消选择文本。我尝试使用 setSelectedTextColor 来更改所选文本的颜色,但这不起作用,因为此后无论何时选择文本都会将文本更改为红色。有没有办法让选定的文本显示为它的实际颜色?Or like the way it works in Word where it's not the actual color of the text, but when text of different colors are selected they show up as different colors even when selected.
我使用以下代码设置 JTextPane 和将所选文本更改为红色的按钮:
JButton redButton = new JButton(new StyledEditorKit.ForegroundAction("red", Color.RED));
redButton.setFocusable(false);
buttonPanel.add(redButton);
Run Code Online (Sandbox Code Playgroud)
JTextPane 设置为内容类型 HTML 并使用 HTMLEditorKit:
p=new JTextPane();
p.setSize(300, 300);
kit = new HTMLEditorKit();
p.setEditorKit(kit);
p.setDocument(kit.createDefaultDocument());
p.setContentType("text/html");
p.setEditable(true);
Run Code Online (Sandbox Code Playgroud)
如果您需要更多源代码来理解这个问题,请告诉我。谢谢你!
当我的jTextArea处于焦点时,它允许文本突出显示,但是当它失去焦点时它不显示文本选择.即使用户将焦点移动到相关jFrame上的另一个组件,是否可以继续显示文本突出显示?
我想在文本中读取用户输入,然后突出显示特定单词并将其返回给用户.我能够阅读文本并将其返回给用户,但我无法弄清楚如何突出显示单个单词.如何使用java swing 突出显示JTextArea中的单个单词?
如何在更改JTextField中的搜索值后刷新JTable中的荧光笔?它可以在JTextfield下使用JTextArea,但是JTable不会刷新荧光笔.有什么建议??
这是我的代码:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.text.*;
import javax.swing.text.DefaultHighlighter.DefaultHighlightPainter;
public class BeispielTabelle {
JTextField field;
JTextArea textFeld = new JTextArea("Hello World!");
String input="Stefan";
//Titel der Tabelle
String[] title = {"EINS", "ZWEI", "DREI"};
//Tabellendaten
Object[][] playerdata = {
{"34", "Stefan", "Mein Name ist Stefan"},
{"32", "Dirk", "Ich bin der Dirk"},
{"99", "Patrick", "Ich heisse Patrick"},
{"100", "Anna", "Ich bin die Anna"},};
//TableModel
DefaultTableModel model = new DefaultTableModel(playerdata,title);
//Tabelle erstellen
JTable textTable = new JTable(model);
public JPanel …
Run Code Online (Sandbox Code Playgroud) 我一直试图在小文本编辑器中实现突出显示功能的最后几天.出于某种原因,我得到一个奇怪的结果:
给出的例子应该突出显示每个"dolor" - 第一次出现是正确找到并突出显示但下一次出现并未突出显示.
这是我到目前为止编写的代码:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultHighlighter;
import javax.swing.text.DefaultHighlighter.DefaultHighlightPainter;
import javax.swing.text.DefaultStyledDocument;
/**
* Highlighting created on 04.11.2013<br>
* <br>
* Specification:<br>
*/
public class Highlighting extends JFrame implements MouseListener {
private JScrollPane scrollPane;
private JTextPane textPane;
private DefaultHighlighter highlighter;
private DefaultHighlightPainter painter;
public static void main(String[] args) {
new Highlighting().setVisible(true);
}
/**
*
*/
public Highlighting() {
this.initialize();
this.build();
this.configure();
}
/**
*
*/ …
Run Code Online (Sandbox Code Playgroud) 我一直在寻找一种方法来突出显示JTextArea中的选定行.有很多关于如何在JTextArea中突出显示文本的帖子,但它只会到字母去.我希望能够突出整行(就像eclipse编辑器突出显示当你点击一行时你所在的整个当前行).我发现的所有帖子都提示了Highlighter对象,但我不确定是否会突出显示JTextArea的非字符区域.另外,有没有办法找到JTextArea中所选行的内容?不是有多少行,而是所选择的行(比如有人点击回到前一点).或者这是一个非常复杂的计算过程?