Я продлил JEditorPane, чтобы содержать и отображать BufferedImage из памяти, но это не краска должным образом. Что я делаю не так?

голоса
0

Я продлил JEditorPane, как показано ниже (минус код экземпляра). Однако, когда я установил обновление изображения и вызова на объекте, он только рисует небольшую часть изображения (эквивалент, где одна строка текста будет идти). Может somene сказать мне, что я делаю неправильно здесь?

общественный класс JEditorPaneImg расширяет JEditorPane {

private BufferedImage bi = null;

public JEditorPaneImg() {
    initComponents();
}

@Override
public void paint(Graphics g) {
    super.paint(g);
    if (bi != null) {
        Graphics2D g2 = (Graphics2D) g;
        g2.drawImage(bi, 0, 0, this);
    }
}

public void setImage(BufferedImage image){
    bi = image;
}

}

Задан 12/08/2010 в 00:28
источник пользователем
На других языках...                            


1 ответов

голоса
0

Я не понимаю, что вы пытаетесь сделать. Похоже, что вы пытаетесь нарисовать изображение на вершине Fo в тексте в панели редактора.

Прежде всего, вы никогда не должны вызывать обновление (). Качели будет определять при окрашивании необходимо сделать.

Если вы хотите, чтобы нарисовать изображение на верхней панели редактора, то нет необходимости добавлять пользовательские картины в панели редактора. Все вы делаете это создать JLabel и добавить ImageIcon на этикетке. Затем добавить ярлык на панель редактора. Убедитесь, что вы используете:

label.setSize( label.getPreferredSize() );

и метка будет просто окрашена в качестве дочернего компонента панели редактора.

Если вам нужна дополнительная помощь после вашего SSCCE показывая проблему.

Ответил 12/08/2010 в 01:56
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more