- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个示例应用程序,其中包含 JTextPane
以及一个打印文本 Pane 内容的按钮。文本 Pane 的内容类型设置为“text/html”。
当我输入一些文本并将其打印到控制台时,文本会自动换行。
例如,给定以下输入:
Watercress shallot radish chickweed bitterleaf bush tomato salad garlic beet greens black-eyed pea green bean salsify bell pepper. Catsear celery green bean broccoli rabe spring onion tatsoi prairie turnip wattle seed cucumber burdock. Chickweed cucumber chickpea bush tomato wakame taro fava bean arugula catsear azuki bean.
输出结果如下
Watercress shallot radish chickweed bitterleaf bush tomato salad garlic
beet greens black-eyed pea green bean salsify bell pepper. Catsear celery
green bean broccoli rabe spring onion tatsoi prairie turnip wattle seed
cucumber burdock. Chickweed cucumber chickpea bush tomato wakame taro fava
bean arugula catsear azuki bean.
有没有办法保留输入文本的格式?我计划将输入存储在数据库中,因此我将换行符替换为 <br>
,但文本 Pane 会自动插入自己的换行符。
如果有替代解决方案,我也可以尝试这些解决方案,但在大多数情况下,我希望能够显示 HTML,同时允许用户修改输入。
这是示例的代码。您应该能够编译并运行它。
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
public class TextPaneTest extends JFrame {
private JTextPane textPane = null;
public static void main(String args[]) {
new TextPaneTest();
}
public TextPaneTest() {
// Main panel
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
// Panel holding text
JPanel textPanel = new JPanel();
textPanel.setLayout(new BorderLayout());
// Text pane
textPane = new JTextPane();
textPane.setContentType("text/html");
// Button
JButton button = new JButton();
button.setText("Print Text");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String text = textPane.getText();
text = text.substring(text.indexOf("<body>") + 6, text.indexOf("</body>"));
System.out.println(text);
}
});
textPanel.add(textPane);
panel.add(textPanel, BorderLayout.CENTER);
panel.add(button, BorderLayout.SOUTH);
// Add everything to the frame
this.add(panel);
this.setSize(1000, 500);
setVisible(true);
}
}
最佳答案
textPane.setText("<html><head><style type='text/css'>"
+ "body{white-space:nowrap;}"
+ "</style></head><body>");
JScrollPane scrollPane = new JScrollPane(textPane);
scrollPane.setHorizontalScrollBarPolicy(
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
//Remove: textPanel.add(textPane);
textPanel.add(scrollPane);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
HTML CSS 删除了换行。仍然有一个水平滚动条。此外,您可能可以使用 EXIT_ON_CLOSE
尤其是在 IDE 中运行时。
关于java - 防止 HTML JTextPane 设置文本输入格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19145578/
我正在序列化一个 JTextPane 的 Document,以便将其样式化的文本保存到数据库中。我有一个 caretListener 附加到 JTextPane 我想知道序列化这个 Document
我目前正在尝试制作 Log4j 2登录 JTextPane .它应该像 Netbeans IDE 控制台中的 STDERR 或 STDOUT(包括文本样式 - 颜色)。 我知道我需要创建一个 appe
我在 JScrollPane 中有一个 JTextPane(水平策略从不,垂直策略始终)。我编写了一种在此 JTextPane 中附加文本的方法。现在有一个按钮,单击该按钮时,操作监听器正在运行,执行
我有一个 JTextPane (1),旁边还有另一个 (2)。我已经同步它们,如果在(2)中输入一行,则在(1)中输入一行,但是当我插入图像(24px)时,(2)会自动调整行长度,但(1)当然不会调整
当我使用 JTextPane 并在 HTML 编辑器模式下键入一些文本时 JTextPane textPane = new JTextPane(); textPane.setContentType("
我在 java swing 中有一个应用程序包含 JTextPane 和 HTMLDocument。假设我将 Pane 的文本设置为:
有没有办法读取 JTextPane 的内容逐行?很像 BufferedReader? 最佳答案 Element root = textPane.getDocument().getDefaultRoot
这是我的问题。我正在编写一个具有语法突出显示的编辑器。没什么特别的,但它可以完成工作。问题是我正在实现错误识别,当我想添加样式来下划线时,我覆盖了我以前的样式。这是一个屏幕截图: 我正在做这样的事情来
所以我想写一个简单的编辑器。我想将所有字符之间的所有字符都涂成灰色“字符。它的片段是: class MainPanel extends JPanel { private int WIDTH = 800
我正在开发一个应用程序,当我从列表中选择一个值(文件)时,它应该在不同形式的 jTextPane 中打开。我正在使用两个面板,一个是显示我的列表的主面板,一个是 ExcelSheet,当我单击列表值时
我创建了一个使用 JTextPane 的 Swing 界面。 JTextPane 使用自定义颜色突出显示: textPane.getHighlighter().addHighlight(startPo
有没有办法使 JTextPane 中的文本看起来与控制台输出的文本相似?我的意思是,基本上,每个字符如何具有相同的宽度,以便 ASCII 艺术或间距缩进等内容可以正常工作。 例如,目前,如果我输入“F
我没有得到垂直滚动条。滚动JTextPane。我正在使用 JPanel 显示 JScrollPane 内部的 JTextPane。这是代码。请查看。谢谢。 import java.awt.*; imp
尝试使用此代码,但它不能准确地改变颜色,请注意“停止”一词。当您键入单词时就会发生这种情况。 https://stackoverflow.com/a/28773736/7694892 最佳答案 在我看
我正在尝试用 JScrollPane 包装 JTextPane,并且我需要背景透明。 这是我的代码: public CharPanel(){ super.setLayout(null);
我使用两个语句添加了图像和文本。但在 JTextPane 中,它仅显示文本。我的代码如下 - jTextPane1.insertIcon(new ImageIcon("t.png")); jTextP
我有两个具有静态大小的 JTextPanes,我想像文本处理器中的两个页面一样连接它们。如果我在第一个 JTextPane(页面)中写入一些内容,并且对于一个 JTextPane 来说太长,那么它会溢
我有一个 JTextPane,其模型是 DefaultStyledDocument。我注意到,如果显示文本,然后使用 setCharacterAttributes 将一行上的每个字符更改为更大的字体,
我有来自 Netbeans 设计器部分的 JTextPane。我想在其上添加列和行。但是,JTextPane 的属性窗口中没有添加列或行的选项。还有其他方法可以做到这一点吗? 最佳答案 JTextPa
我有一个文本需要格式化,文本的第一个单词需要加粗、大字体并居中。 为了进行这种格式化,我使用了 TextSamplerDemo.java 中的解决方案在 JTextComponents 的 oracl
我是一名优秀的程序员,十分优秀!