2013-04-26 2 views
0

Я новичок в использовании JasperReports. В моем приложении Swing я хочу показать JRViewer внутри JPanel. Я знаю, как отображать JRViewer внутри JFrame, но мне трудно отображать его в JPanel.Как отобразить JasperReports Viewer внутри JPanel?

Может ли кто-нибудь помочь мне?

Я пробовал этот код.

JRViewer jv = new JRViewer(jp); 
panel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0))); 
panel.setPreferredSize(new java.awt.Dimension(1000, 700)); 
panel.setLayout(new java.awt.BorderLayout()); 
panel.add(jv); 
panel.repaint(); 
panel.revalidate(); 

Ошибка отсутствует, но отчет не отображается в jpanel.

ответ

-1

Что расширяет JRViewer? Какой менеджер макетов использует JPanel? Убедитесь, что он использует что-то, что может расширить компонент для его заполнения, например BorderLayout.

Редактировать: JRViewer расширяет JPanel, поэтому ваша проблема сводится к простому отображению одного JPanel внутри другого. Опять же, если внешний JPanel использует BorderLayout или другой разумный менеджер макета, а затем просто добавьте к нему экземпляр JRViewer, затем вызовите repaint() и revalidate() на контейнер JPanel. Вы также захотите ознакомиться с учебниками Swing по использованию JPanels и менеджеров компоновки, так как это хорошо объяснено там.

+0

Я попробовал этот код, но до сих пор не работает. panel.setBorder (javax.swing.BorderFactory.createLineBorder (новый java.awt.Color (0, 0, 0))); panel.setPreferredSize (новый java.awt.Dimension (1000, 700)); panel.setLayout (новый java.awt.BorderLayout()); panel.add (jv); panel.repaint(); panel.revalidate(); – user2322019

+0

@ user2322019: пожалуйста, отправьте код как отредактировав исходное сообщение. Если код не работает, сообщите нам подробную информацию о своей проблеме. Просто сказать «не работает» дает нам немного времени. –

+0

Tnx за помощь сэр. Теперь я делаю это правильно. – user2322019

1

это работало для меня

JRViewer vw=new JRViewer(jp); 
     jPanel13.setLayout(new BorderLayout()); 
     jPanel13.repaint(); 
     jPanel13.add(vw); 
     jPanel13.revalidate(); 
Смежные вопросы