JPanel не отображает графику - PullRequest
1 голос
/ 08 ноября 2011

У меня есть класс Java, который расширяется от JPanel. Основная цель расширения этого класса из JPanel состоит в том, что я хочу нарисовать некоторые графические фигуры внутри этой JPanel. Код этого класса выглядит следующим образом:

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
public class ObjectViewer extends JPanel {
    public void paintComponent(Graphics g) {
        //just for testing
        g.drawRect(0, 0, 100, 10);

        g.drawLine(150, 150, 250, 150);
    }
}

Теперь я загружаю этот JPanel в JScrollPane, используя следующий код.

JPanel jpnl = new ObjectViewer();
jScrollPane2.add(jpnl);//Note: I drag and drop this JScrollPanel at desired location from NetBeans gui.

Но я не могу увидеть графику (прямую и прямую) в этой JScrollPane, какие-либо предложения о том, что я делаю неправильно?

1 Ответ

3 голосов
/ 08 ноября 2011

Вы никогда не добавляете свой JPanel непосредственно в JScrollPane, а скорее в его окно просмотра.Так, например, не

jScrollPane2.add(jpnl);

, а скорее что-то вроде:

jScrollPane2.setViewportView(jpnl);

или

jScrollPane2.getViewport().add(jpnl);

, альтернативно, вы можете добавить JPanel в качестве параметра вконструктор полосы прокрутки.

...