gpt4 book ai didi

java - 如何在 JEditorPane 中编辑文本字体

转载 作者:太空宇宙 更新时间:2023-11-04 13:03:39 31 4
gpt4 key购买 nike

我有一个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。

最佳答案

I have a JEditorPane where it is loaded a txt file.

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

查看 Swing 教程中 Text Component Features 的部分一个工作示例,允许您更改 JTextPane 中选定文本的字体、颜色等。

关于java - 如何在 JEditorPane 中编辑文本字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697227/

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