editorPane.setContentType("text/html");
editorPane.setFont(new Font("Segoe UI", 0, 14));
editorPane.setText("Hello World");
這不會改變文本的字體。我需要知道如何使用HTML編輯器工具包設置JEditorPane的默認字體。在JEditorPane中設置默認字體
編輯:
editorPane.setContentType("text/html");
editorPane.setFont(new Font("Segoe UI", 0, 14));
editorPane.setText("Hello World");
這不會改變文本的字體。我需要知道如何使用HTML編輯器工具包設置JEditorPane的默認字體。在JEditorPane中設置默認字體
編輯:
我檢查你的代碼,不應該有任何問題。你測試過其他字體嗎?請嘗試「Segoe Script」字體,看看它是否發生變化。
編輯: 我試過了代碼波紋管,它適用於我。您確定您發佈的代碼與您實施的代碼完全相同嗎?
editorPane.setContentType("text/html");
editorPane.setFont(new Font("Segoe Script", 0, 14));
editorPane.setText("it works!");
EDIT2: 更改您的主要方法如下。它設置了Nimbus LookAndFeel。我還沒有檢查過其他LookAndFeels。
public static void main(String[] args)
{
try
{
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels())
{
if ("Nimbus".equals(info.getName()))
{
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex)
{
java.util.logging.Logger.getLogger(EditorPaneDemo.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
new EditorPaneDemo();
}
});
}
試試下面
editorPane.setFont(new Font("Segoe UI", Font.PLAIN, 24));
下面
工作代碼:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
public class jeditorfont extends JFrame {
private JTextPane textPane = new JTextPane();
public jeditorfont() {
super();
setSize(300, 200);
textPane.setFont(new Font("Segoe UI", Font.PLAIN, 24));
// create some handy attribute sets
SimpleAttributeSet red = new SimpleAttributeSet();
StyleConstants.setForeground(red, Color.red);
StyleConstants.setBold(red, true);
SimpleAttributeSet blue = new SimpleAttributeSet();
StyleConstants.setForeground(blue, Color.blue);
SimpleAttributeSet italic = new SimpleAttributeSet();
StyleConstants.setItalic(italic, true);
StyleConstants.setForeground(italic, Color.orange);
// add the text
append("NULL ", null);
append("Blue", blue);
append("italic", italic);
append("red", red);
Container content = getContentPane();
content.add(new JScrollPane(textPane), BorderLayout.CENTER);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
protected void append(String s, AttributeSet attributes) {
Document d = textPane.getDocument();
try {
d.insertString(d.getLength(), s, attributes);
} catch (BadLocationException ble) {
}
}
public static void main(String[] args) {
new jeditorfont().setVisible(true);
}
}
編號:http://www.java2s.com/Code/JavaAPI/javax.swing/JTextPanesetFontFontfont.htm
不錯,但這是'JTextPane'的一個例子 –
當渲染HTML,JEditorPane中的字體需要通過它的樣式表進行更新:
JEditorPane editorPane =
new JEditorPane(new HTMLEditorKit().getContentType(),text);
editorPane.setText(text);
Font font = new Font("Segoe UI", Font.PLAIN, 24));
String bodyRule = "body { font-family: " + font.getFamily() + "; " +
"font-size: " + font.getSize() + "pt; }";
((HTMLDocument)editorPane.getDocument()).getStyleSheet().addRule(bodyRule);
試試這個:
JEditorPane pane = new JEditorPane();
pane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
pane.setFont(SOME_FONT);
到德共德博客所有學分!來源: http://de-co-de.blogspot.co.uk/2008/02/setting-font-in-jeditorpane.html
我剛剛測試過它。這使得JEditorPane使用與JLabel相同的字體。
JEditorPane pane = new JEditorPane();
pane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
pane.setFont(someOrdinaryLabel.getFont());
完美地工作。
當您使用HTML工具包時,您可以使用標準樣式在HTML中設置字體。因此,將setText更改爲如下所示:
editorPane.setText("<html><head><style>" +
"p {font-family: Segoe UI; font-size:14;}" +
"</style></head>" +
"<body><p>It Works!</p></body></html>");
並刪除setFont語句。
請將您的代碼以文本格式發佈,而不是它的圖像,因爲任何想要測試它的人都必須將其寫出來。這不是學校:) –
更多關於如何採取[截圖](http://meta.stackexchange.com/questions/99734/how-do-i-create-a-screenshot-to-illustrate-a-後)。代碼可以使用 – trashgod