我有一个JEditorPane加载了txt文件的位置。我想要一个可以更改字体大小的按钮。我发现了关于StyledEditorKit的信息,但是我无法使用它。我对Java非常陌生,这对我来说有点困难。

     public JFrame init() {
    JFrame frame = new JFrame("Pagination");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    final JEditorPane editor = new JEditorPane();
    editor.setEditorKit(this);

    editor.addCaretListener(new CaretListener() {
        public void caretUpdate(CaretEvent e) {
            if (!isPageBreakInsertion ) {
                ( (StyledEditorKit) editor.getEditorKit()).getInputAttributes().removeAttribute(PAGE_BREAK_ATTR_NAME);
            }
        }
    });



    JMenu fontMenu = new JMenu("Font Size");
    for (int i = 48; i >= 8; i -= 10) {
      JMenuItem menuItem = new JMenuItem("" + i);
      // add an action
      menuItem
          .addActionListener(new StyledEditorKit.FontSizeAction(
              "myaction-" + i, i));
      fontMenu.add(menuItem);
    }
    JMenuBar menuBar = new JMenuBar();
    menuBar.add(fontMenu);

    frame.setJMenuBar(menuBar);
    this.setHeader(createHeader());
    this.setFooter(createFooter());
    PageFormat pf = new PageFormat();
    pf.setPaper(new Paper());

    final PaginationPrinter pp = new PaginationPrinter(pf, editor);
    JScrollPane scroll = new JScrollPane(editor);

    frame.getContentPane().add(scroll);
    JToolBar tb=new JToolBar();
    JButton bPrint = new JButton("Print to default printer");
    bPrint.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            print(editor, pp);
        }
    });
    JButton bInsertPageBreak = new JButton("Insert page break");
    bInsertPageBreak.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            insertPageBreak(editor);
        }
    });

    File file = new File("uuu.txt");

    try {
        editor.setPage(file.toURI().toURL());
    } catch (MalformedURLException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    StyledDocument doc = (StyledDocument) editor.getDocument();

    // Create a style object and then set the style attributes
    Style style = doc.addStyle("StyleName", null);

    StyleConstants.setFontSize(style, 30);



    tb.add(bPrint);
    tb.add(bInsertPageBreak);
    frame.getContentPane().add(tb, BorderLayout.NORTH);
    frame.setBounds(new Rectangle(0, 23, 665, 789));

    return frame;
}


到目前为止,这是我的代码。我已经搜索了很多,但是找不到能给我解决方案的东西。另外,我不知道确切如何使用StyledEditorKit
谢谢。

我必须保留以下代码

final JEditorPane editor = new JEditorPane();
editor.setEditorKit(this);


因为它会创建我需要的布局,这是A4纸并设置限制。我还必须补充一点,我的课程扩展了StyledEditorKit。

最佳答案

我有一个JEditorPane,在其中加载了txt文件。


对于纯文本,应使用JTextPane。 JEdi​​torPane用于HTML。

Text Component Features的Swing教程中查看相关章节,以找到一个有效的示例,该示例使您可以更改JTextPane中所选文本的字体,颜色等。

10-04 23:23