我有一个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
。 JEditorPane用于HTML。
在Text Component Features的Swing教程中查看相关章节,以找到一个有效的示例,该示例使您可以更改JTextPane中所选文本的字体,颜色等。