Исправление размера содержимого JEditorPane - PullRequest
2 голосов
/ 27 октября 2011

Я пытаюсь отобразить JEditorPane внутри JFrame (фиксированный размер), который затем отображает строку текста HTML.Я могу отобразить все, хотя кажется, что текст внутри строки HTML, который я передаю в панель EditorPane, не обрезается и не переносится на новую строку.то есть он просто выходит за пределы экрана.Кажется, что метод setSize не имеет никакого отношения к размеру Панели?

Я делаю это приложение для экрана другого размера, поэтому важно, чтобы текст переносился на новые строки и соответствовал размеру экрана, а не выполнялсяпрочь!

    JEditorPane pane = new JEditorPane();
    pane.setEditable(false);
    HTMLDocument htmlDoc = new HTMLDocument () ; 
    HTMLEditorKit editorKit = new HTMLEditorKit () ;
    pane.setEditorKit (editorKit) ; 
    pane.setSize(size);
    pane.setMinimumSize(size); 
    pane.setMaximumSize(size);
    pane.setOpaque(true);
    pane.setText("<b><font face=\"Arial\" size=\"50\" align=\"center\" > Unfortunately when I display this string it is too long and doesn't wrap to new line!</font></b>");
    bg.add(pane, BorderLayout.CENTER);

Большое спасибо Сэм

Ответы [ 2 ]

3 голосов
/ 27 октября 2011

У меня работает ... возможно, вы инициализировали это по-другому?

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;

import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;

public class JEditorPaneTest extends JFrame {
    public static void main(String[] args) {
        JEditorPaneTest t= new JEditorPaneTest();
        t.setSize(500,500);
        Container bg = t.getContentPane();
        t.createJEditorPane(bg, bg.getSize());
        t.setVisible(true);
    }

    public void createJEditorPane(Container bg, Dimension size) {
        JEditorPane pane = new JEditorPane();
        pane.setEditable(false);
        HTMLDocument htmlDoc = new HTMLDocument();
        HTMLEditorKit editorKit = new HTMLEditorKit();
        pane.setEditorKit(editorKit);
        pane.setSize(size);
        pane.setMinimumSize(size);
        pane.setMaximumSize(size);
        pane.setOpaque(true);
        pane.setText("<b><font face=\"Arial\" size=\"50\" align=\"center\" > Unfortunately when I display this string it is too long and doesn't wrap to new line!</font></b>");
        bg.add(pane, BorderLayout.CENTER);
    }
}
0 голосов
/ 11 июня 2014

Я использовал метод setPreferredSize вместо setSize, как показано в коде ниже:

        JEditorPane jEditorPane = new JEditorPane();
        jEditorPane.setEditable(false);
        jEditorPane.setContentType("text/html");
        jEditorPane.setText(toolTipText);
        jEditorPane.setPreferredSize(new Dimension(800, 600));

Это должно работать с любым контейнером - в моем случае я использовал его с панелью прокрутки.

НТН!

...