LINUX.ORG.RU

[java] [swing] Размещение компонентов

 ,


0

1

Рисую форму в редакторе NetBeans, и нужно поместить картинку внутрь JScrollPane'а. Картинка отображается на JPanel'е, естественно, картинка больше JScrollPane'а. Подскажите, как сделать, пожалуйста. Или другой способ для прокрутки картинки.

    public void paint(Graphics g) {
        super.paint(g);
        Graphics2D g2 = (Graphics2D) pMap.getGraphics();
        pMap.setSize(i.getWidth(null), i.getHeight(null));
        g2.drawImage(i, 0, 0, null);
    }
Так картинка не отображается
    public void paint(Graphics g) {
        super.paint(g);
        Graphics2D g2 = (Graphics2D) pMap.getGraphics();
        //pMap.setSize(i.getWidth(null), i.getHeight(null));
        g2.drawImage(i, 0, 0, null);
    }
а так не прокручивается (pMap - это тот самый JPanel, i - картинка)

★★★★

Последнее исправление: alix (всего исправлений: 2)

нужно поместить картинку внутрь JScrollPane'а. Картинка отображается на JPanel'е, естественно, картинка больше JScrollPane'а

Ставите JPanel размер картинки

рисуете на нем картинку, надеюсь знаете как?

собственно все, но это способ плохой.

belous_k_a
()
Ответ на: комментарий от belous_k_a

А если размер не устанавливать, картинка отображается, но естественно не прокручивается

alix ★★★★
() автор топика
Ответ на: комментарий от alix

картинка не отображается.

Телепаты подсказывают что вы что-то делаете, не так, например отрисовку картинки.

А вообще если все так плохо то есть демка из 4-х файлов http://docs.oracle.com/javase/tutorial/uiswing/examples/components/index.html...

А какой способ хороший?

Рисовать только видимый кусок изображения, а не все. Это эффективнее, но сложнее, и если у вас картинка пока вообще не выводится то не заморачивайтесь.

belous_k_a
()
Ответ на: комментарий от alix

Это просто сказка, зачем вы устанавливаете размер в методе paint? Я понимаю что у свинг кривая архитектура, но по названию метода можно догадаться что он для рисования.

belous_k_a
()
Ответ на: комментарий от belous_k_a

Перенёс в конструктор формы, это правильней? Всё равно картинка не показывается.

alix ★★★★
() автор топика
Ответ на: комментарий от belous_k_a

Убеждался (Выводил через System.out.println()), возвращают настоящий размер картинки

alix ★★★★
() автор топика
Ответ на: комментарий от alix

это правильнее только не size, а лучше setPrefferedSize, хотя не факто что это поможет, надо отладчиком в методе paint смотреть что там творится.

belous_k_a
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.