Java Swing JTextPane
2018-01-09 19:23 更新
Java Swing教程 - Java Swing JTextPane
JTextPane类是JEditorPane类的一个子类,是一个专用组件,用于处理带有嵌入图像和组件的样式文档。
要显示HTML,RTF或纯文档,请使用JEditorPane。要编辑或显示样式文本,请使用JTextPane。 JTextPane是一个迷你文字处理器。
JTextPane使用一个样式文档作为其模型,它是StyledDocument接口的一个实例。
StyledDocument接口继承Document接口。DefaultStyledDocument是StyledDocument接口的实现类。
JTextPane使用DefaultStyledDocument作为其默认模型。
Swing文本组件中的文档包含以树状结构组织的元素。
文档中的元素是javax.swing.text.Element接口的实例。
样式文本
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; /*from w ww.j a va2s .c om*/ import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.text.BadLocationException; import javax.swing.text.Document; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; public class Main { public static void main(String args[]) throws BadLocationException { JFrame jf = new JFrame("StyledText"); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container cp = jf.getContentPane(); JTextPane pane = new JTextPane(); SimpleAttributeSet set = new SimpleAttributeSet(); StyleConstants.setBold(set, true); // Set the attributes before adding text pane.setCharacterAttributes(set, true); pane.setText("www.w3cschool.cn "); set = new SimpleAttributeSet(); StyleConstants.setItalic(set, true); StyleConstants.setForeground(set, Color.red); StyleConstants.setBackground(set, Color.blue); Document doc = pane.getStyledDocument(); doc.insertString(doc.getLength(), "Swing ", set); set = new SimpleAttributeSet(); StyleConstants.setFontSize(set, 24); doc.insertString(doc.getLength(), "Tutorial", set); JScrollPane scrollPane = new JScrollPane(pane); cp.add(scrollPane, BorderLayout.CENTER); jf.setSize(400, 300); jf.setVisible(true); } }
风格上下文
import java.awt.Color; /*from w w w . j a v a 2 s . co m*/ import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextPane; import javax.swing.SwingUtilities; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultStyledDocument; import javax.swing.text.Style; import javax.swing.text.StyleConstants; import javax.swing.text.StyleContext; public class Main { public static void main(String[] args) { JFrame f = new JFrame(); StyleContext sc = new StyleContext(); final DefaultStyledDocument doc = new DefaultStyledDocument(sc); JTextPane pane = new JTextPane(doc); final Style heading2Style = sc.addStyle("Heading2", null); heading2Style.addAttribute(StyleConstants.Foreground, Color.red); heading2Style.addAttribute(StyleConstants.FontSize, new Integer(16)); heading2Style.addAttribute(StyleConstants.FontFamily, "serif"); heading2Style.addAttribute(StyleConstants.Bold, new Boolean(true)); try { SwingUtilities.invokeAndWait(new Runnable() { public void run() { try { doc.insertString(0, text, null); doc.setParagraphAttributes(0, 1, heading2Style, false); } catch (BadLocationException e) { } } }); } catch (Exception e) { System.out.println("Exception when constructing document: " + e); System.exit(1); } f.getContentPane().add(new JScrollPane(pane)); f.setSize(400, 300); f.setVisible(true); } public static final String text = "Attributes, Styles and Style Contexts\n" + "this is a test.\n"; }
以上内容是否对您有帮助:
更多建议: