2013-05-01 2 views
-1

Я работаю над приложением, управлять фильтрами изображений в т.д.Java JPanel & JScrollPane

Я хочу, чтобы иметь полосы прокрутки, когда изображение является большим, чтобы быть дисплеем. Я положил свою панель настройки, которая расширяет JPanel в JScrollPane, и я добавляю его в свой JFrame.

Мое изображение отображается, но не все изображение, а полосы прокрутки там отсутствуют.

Как получить полосы прокрутки?

Вот мой код:

CustomePanel test = new ImagePanel(new File("test.jpg")); 
test.setPreferredSize(new Dimension(400, 400)); 
JScrollPane tmp = new JScrollPane(test); 
this.getContentPane().add(tmp); 
+0

[ 'ImageViewer'] (http://stackoverflow.com/a/13463684/418556) является рабочим примером. Если вы не можете разобраться с этим кодом, отправьте сообщение [SSCCE] (http://sscce.org/) о вашей лучшей попытке. –

+1

* "и я добавляю его в свой кадр" * DYM a 'java.awt.Frame' или' javax.swing.JFrame'? Не смешивайте компоненты Swing & AWT без уважительной причины. BTW - я добавил * «Как заставить полосы прокрутки появиться?» * На вопрос, так как в нем не было одного (вопрос, то есть). Если это *** не *** ваш вопрос, спросите одного из своих. –

+0

мой плохой, действительно, это JFrame. – Lenjyco

ответ

2

Вполне вероятно, что ваш первоначальный предпочтительный размер не совпадает с вашей Image. Вместо того чтобы использовать setPreferredSize, переопределить getPreferredSize, чтобы отразить размер изображения в ImagePanel:

@Override 
public Dimension getPreferredSize() { 
    return new Dimension(image.getWidth(this), image.getHeight(this)); 
} 

JLabel бы лучший подход здесь, если панель не требуется в качестве контейнера.

+0

Это работает, спасибо вам большое. Можно вас спросить о чем-то ? Я получаю свою полосу прокрутки слева, и я хотел бы иметь вторую на дне, как я могу ее сделать? – Lenjyco

+0

Я действительно не вижу преимущества использования панели, где этикетка лучше подходит. –

+0

Еще раз спасибо. Я использую панель, потому что она обязательна в отношении того, что я работаю над ^^ ' – Lenjyco

0

попытаться установить один и тот же предпочтительный размер для прокрутки панели, а также и протестировать его

Смежные вопросы