gpt4 book ai didi

Java Swing 使用选项卡存储和呈现文本

转载 作者:行者123 更新时间:2023-11-29 03:46:35 25 4
gpt4 key购买 nike

我的 swing 应用程序包含一个 JEditorPane,它允许用户以所见即所得的方式编辑文本,包括用于粗体、斜体和设置字体等的工具栏按钮。

JEditorPane 上的内容类型是 text/html

问题:用户希望能够在编辑器 Pane 中键入制表符,关闭编辑对话框(将 HTML 文本保存到永久存储)并查看他们的制表符呈现。但是,HTML 将所有空格视为一个空格。

public class NoteTest {
public static void main(String[] args) {
final JEditorPane editPane1 = new JEditorPane("text/html", "Try typing some tabs");
editPane1.setPreferredSize(new Dimension(400, 300));
JOptionPane.showMessageDialog(null, new JScrollPane(editPane1));
JOptionPane.showMessageDialog(null, new JScrollPane(new JEditorPane("text/html", editPane1.getText()))); // where did the tabs go?
}
}

在第一个 JEditorPane 中键入制表符后,我们从中获取 HTML 文本,并将其传递给第二个 JEditorPane,后者将制表符呈现为空格。

如何呈现这些选项卡?我应该将用户输入的内容保存为 RTF 而不是 HTML 格式吗?我是否应该解析 HTML 并构建一个包含行和单元格的 HTML 表格(呃)。或者有什么方法可以告诉 swing 将制表符呈现为制表符?

最佳答案

为了尽快获得更好的帮助,请发布 SSCCE。此 SSCCE 未显示您描述的行为。

Text with tab included

注意 typin gng 之间的“制表符”。

import java.awt.Dimension;
import javax.swing.*;

public class NoteTest {
public static void main(String[] args) {
final JEditorPane editPane1 = new JEditorPane("text/html", "Try typing some tabs");
editPane1.setPreferredSize(new Dimension(400, 300));
JOptionPane.showMessageDialog(null, new JScrollPane(editPane1));
JOptionPane.showMessageDialog(null, new JScrollPane(new JEditorPane("text/html", editPane1.getText()))); // where did the tabs go?
}
}

末尾有一些标签消失了,但这是有道理的,因为标签在 HTML 中不受正确支持,除非包含在 pre 元素中。我猜 Swing HTML 解析会忽略它们,因为它们是多余的。

关于Java Swing 使用选项卡存储和呈现文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10608790/

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