gpt4 book ai didi

java - 更改 JTextArea 中的文本选择类型

转载 作者:行者123 更新时间:2023-11-30 09:07:26 26 4
gpt4 key购买 nike

在大多数文本编辑器中,我看到当文本被选中时,所有的行都会将颜色更改为选择颜色。 enter image description here

但是在 JTextArea 中,在选择过程中只有文本颜色在选择过程中发生变化。 enter image description here

如何在 JTextArea 中实现上述选择类型,其中所有被选中的区域都是彩色的?我找不到任何可以完成这项工作的方法。

最佳答案

也许是 DefaultHighlighter#setDrawsLayeredHighlights(false)将工作:

enter image description here

import java.awt.*;
import java.io.*;
import javax.swing.*;
import javax.swing.text.*;

public class SelectionTypeTest {
public JComponent makeUI() {
JTextArea textArea = new JTextArea();
DefaultHighlighter hl = (DefaultHighlighter) textArea.getHighlighter();
System.out.println(hl.getDrawsLayeredHighlights());
hl.setDrawsLayeredHighlights(false);
textArea.setSelectionColor(Color.RED);
textArea.setSelectedTextColor(Color.WHITE);
try (Reader reader = new BufferedReader(new InputStreamReader(
new FileInputStream("SelectionTypeTest.java"), "UTF-8"))) {
textArea.read(reader, "");
} catch (Exception ex) {
ex.printStackTrace();
}
return new JScrollPane(textArea);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
createAndShowGUI();
}
});
}
public static void createAndShowGUI() {
JFrame f = new JFrame();
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.getContentPane().add(new SelectionTypeTest().makeUI());
f.setSize(320, 240);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}

关于java - 更改 JTextArea 中的文本选择类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23986158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com