- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经使用 JTextPane 和 AdvancedRTFEditorKit 在 java/swing 中创建了一个编辑器,我从这里找到了它(使用它而不是 RTFEditorKit,因为它已过时),但是如果你可以说这是一个问题,那么我有一个“问题”,使用 AdvancedRTFEditorKit 我只能打开我用它创建的文件,例如我无法打开 .txt、.java、.cpp、.c,我只能打开我使用创建的文件我的编辑。这正常吗?或者我做错了什么?还有其他人使用过 AdvancedRTFEditorKit 吗?
谢谢大家,很高兴很快就能看到答案!
我使用过这个 RTF 编辑器套件:click here!
这里是 SSCCE...
package sscceeditor;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.text.BadLocationException;
import rtf.AdvancedRTFDocument;
import rtf.AdvancedRTFEditorKit;
class ExampleFrame extends JFrame{
private JMenuBar bar = new JMenuBar();
private JMenu fileMenu = new JMenu("File");
private JMenuItem saveItem = new JMenuItem("Save");
private JMenuItem loadItem = new JMenuItem("Load");
private JTextPane txtPane = new JTextPane(new AdvancedRTFDocument());;
private JScrollPane scroller = new JScrollPane(txtPane);
private JFileChooser chooser = new JFileChooser();
private AdvancedRTFEditorKit rtfKit = new AdvancedRTFEditorKit();
//ctor begins...
public ExampleFrame(){
super("Example Editor");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(500, 400);
this.setLocationRelativeTo(null);
saveItem.addActionListener(new SaveHandler());
loadItem.addActionListener(new LoadHandler());
//set the kit...
txtPane.setEditorKit(rtfKit);
//create the menu...
fileMenu.add(saveItem);
fileMenu.add(loadItem);
bar.add(fileMenu);
this.setJMenuBar(bar);
//create the main panel...
JPanel mainPane = new JPanel();
mainPane.setLayout(new BorderLayout());
mainPane.add(BorderLayout.CENTER , scroller);
this.setContentPane(mainPane);
}//end of ctor.
//inner event handler classes...
class SaveHandler implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
int response = chooser.showSaveDialog(ExampleFrame.this);
if(response == JFileChooser.APPROVE_OPTION){
try(BufferedWriter bw = new BufferedWriter(
new FileWriter(chooser.getSelectedFile().getPath())))
{
txtPane.setText("");
rtfKit.write(bw, txtPane.getDocument() , 0 , txtPane.getDocument().getLength());
bw.close();
}catch(IOException | BadLocationException ex){
System.err.println(ex);
}
}
}//end of method.
}
class LoadHandler implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
int response = chooser.showOpenDialog(ExampleFrame.this);
if(response == JFileChooser.APPROVE_OPTION){
try(BufferedReader bw = new BufferedReader(
new FileReader(chooser.getSelectedFile().getPath())))
{
txtPane.setText("");
rtfKit.read(bw, txtPane.getDocument() , 0 );
bw.close();
}catch(IOException | BadLocationException ex){
System.err.println(ex);
}
}
}//end of method.
}
}//end of class ExampleFrame.
public class SSCCEeditor {
public static void main(String... args) {
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
new ExampleFrame().setVisible(true);
}
});
}
}
最佳答案
要打开常用的 txt 文件,您可以使用
getDocument().remove(0, getDocument().getLength());
getDocument().insertString(0,theFileContent, new SimpleAttributeSet());
关于java - Java/Swing 中的高级 RTFEditorKit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16902611/
我正在创建一个简单的写字板编辑器应用程序。我正在使用 JTextPane。我添加了代码以使用 RTFEditorKit 读取“.rtf”文件。初始化代码: RTFEditorKit rtfKit =
有人知道如何获取 RTF 文件的页眉/页脚吗?我尝试了这样的事情(使用 RTfEditorKit): RTFEditorKit rtf = new RTFEditorKit(); De
我需要在 java 桌面应用程序中链接文本 block 。这些文本 block 位于 JTextPane 中。与 JTextPane 关联的编辑器是 RTFEditorKit。 我的问题是检测当前文本
考虑以下代码: import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IO
我已经使用 JTextPane 和 AdvancedRTFEditorKit 在 java/swing 中创建了一个编辑器,我从这里找到了它(使用它而不是 RTFEditorKit,因为它已过时),但
我想将 RTF 编辑 swing 组件嵌入到应用程序中。 JTextPane 可以与 RTFEditorkit 一起使用,我用它创建了一个小型示例编辑器。但也存在一些问题,从我在网上发现的情况来看,R
我使用的是 java RTFEditorKit,它大部分时间都可以将 RTF 格式转换为文本格式。有时,我会遇到一个文件,我得到的不是转换,而是以下内容: java.io.IOException:RT
我需要一个简单的 HTML2RTF 转换器我尝试运行以下代码...但我收到此代码示例的错误 代码: import java.io.ByteArrayInputStream; import java.i
我正在尝试使用 Java 读取 RTF 文件,我找到了 Swing 的 RTFEditorkit。是否有任何其他 jar 文件可用于读取 rtf 文件。不满意this answer . 最佳答案 你可
我是一名优秀的程序员,十分优秀!