Mengatur font default di JEditorPane

editorPane.setContentType("text/html");    
editorPane.setFont(new Font("Segoe UI", 0, 14));
editorPane.setText("Hello World");

Ini tidak mengubah font teks. Saya perlu tahu cara mengatur font default untuk JEditorPane dengan HTML Editor Kit.

Sunting:

masukkan deskripsi gambar di sini


person Sanjeev    schedule 22.09.2012    source sumber
comment
Silakan posting kode Anda dalam format teks dan bukan gambar, Karena siapa pun yang ingin mengujinya harus menuliskannya. Ini bukan sekolah :)   -  person David Kroukamp    schedule 22.09.2012
comment
Lebih lanjut tentang cara mengambil tangkapan layar.   -  person trashgod    schedule 22.09.2012


Jawaban (5)


Coba yang ini:

JEditorPane pane = new JEditorPane();
pane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
pane.setFont(SOME_FONT);

Semua kredit untuk blogger de-co-de! Sumber: http://de-co-de.blogspot.co.uk/2008/02/setting-font-in-jeditorpane.html

Saya baru saja mengujinya. Hal ini membuat JEditorPane menggunakan font yang sama dengan JLabel

JEditorPane pane = new JEditorPane();
pane.putClientProperty(JEditorPane.HONOR_DISPLAY_PROPERTIES, Boolean.TRUE);
pane.setFont(someOrdinaryLabel.getFont());

Bekerja dengan sempurna.

person Espinosa    schedule 02.03.2013

Saat merender HTML, font JEditorPane perlu diperbarui melalui style sheet-nya:

    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);
person bobby_light    schedule 22.09.2012

Saat Anda menggunakan perangkat HTML, Anda dapat mengatur font dalam HTML menggunakan gaya standar. Jadi ubah setText menjadi seperti ini:

editorPane.setText("<html><head><style>" + 
                   "p {font-family: Segoe UI; font-size:14;}" + 
                   "</style></head>" +
                   "<body><p>It Works!</p></body></html>");

dan hapus pernyataan setFont.

person IanB    schedule 28.09.2017

coba di bawah

editorPane.setFont(new Font("Segoe UI", Font.PLAIN, 24));

di bawah ini adalah kode yang berfungsi:

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);
  }
}

referensi: http://www.java2s.com/Code/JavaAPI/javax.swing/JTextPanesetFontFontfont.htm

person Alvin Pradeep    schedule 22.09.2012
comment
Bagus tapi ini adalah contoh JTextPane - person David Kroukamp; 22.09.2012

Saya sudah memeriksa kode Anda, seharusnya tidak ada masalah. Sudahkah Anda menguji font lain? Silakan coba font "Segoe Script" dan lihat apakah ada perubahan.

Sunting: Saya telah mencoba kode di bawah ini, kode tersebut berfungsi dengan baik bagi saya. Apakah Anda yakin kode yang Anda posting sama persis dengan yang Anda terapkan?

    editorPane.setContentType("text/html");
    editorPane.setFont(new Font("Segoe Script", 0, 14));
    editorPane.setText("it works!");

Edit2: Ubah metode utama Anda sebagai berikut. Ini mengatur Nimbus LookAndFeel. Saya belum memeriksa LookAndFeels lainnya.

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();
        }
    });
}
person Canis Majoris    schedule 22.09.2012
comment
seperti yang saya sebutkan dalam jawaban saya yang telah diedit, pastikan Anda telah menerapkan kode yang tepat - person Canis Majoris; 22.09.2012
comment
harap perhatikan gambar yang diunggah, karena teksnya bukan font segoe script. - person Sanjeev; 22.09.2012
comment
Mungkin itu tidak didukung di platform Anda. Apa sistem operasi Anda? Lihat postingan saya lagi, saya tunjukkan cara mengatur Nimbus LookAndFeel. Coba itu, pasti berhasil. - person Canis Majoris; 22.09.2012