Problem z JScrollPane

0

w jaki spsosb zaladowac do JScrollPane klase extend JPanel w ktorej tworze dokument. Wiem ze trzeba jakos zapisac i podac przy tworzeniu JScrollPane tylko nie bardzo wiem jak to zrobic.

  public Test() {
    super();
    
    Container container = getContentPane();
    canvas = new DrawingCanvas();
    JScrollPane prv = new JScrollPane(canvas);
     prv.setVerticalScrollBarPolicy (javax.swing.JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
     container.add(prv);

...
...
...
}
class DrawingCanvas extends JPanel {

   Font font14;
   Font font10;
   Font font8;
   Image obraz ;
   FontMetrics fontMetrics;
   int w, h;

  DrawingCanvas() {
	  
    setBackground(Color.white);
    obraz =Toolkit.getDefaultToolkit().getImage("logo.png");
    font14 = new Font("Dialog", Font.BOLD, 14);
    fontMetrics = getFontMetrics(font14);
    font10 = new Font("Dialog", Font.BOLD, 10);
    fontMetrics = getFontMetrics(font10);
    
    font8 = new Font("Dialog", Font.BOLD, 8);
    fontMetrics = getFontMetrics(font8);
  }

  public void paintComponent(Graphics g) {
    super.paintComponent(g); 
    Graphics2D g2D = (Graphics2D) g;
    paintContent(g2D, w, h);
  }

  
  public void paintContent(Graphics2D g2D, int w, int h) {
       g2D.setColor(Color.black);
       g2D.setFont(font14);
       g2D.drawImage(obraz,75,50,this);
       g2D.drawString("jakis napis", 345,85);

...
...
...
}

wszysko jest OK, ale nie mozna przewinac obrazu, bo nie ma suwaka ;)

0

konstruktor powinieneś zadeklarować tak:
JScrollPane prv = new JScrollPane(canvas, JScrollPane.VERTICAL_AS_NEEDED, JScrollPane.HORIZONTAL_AS_NEEDED);
Takie coś automatycznie będzie dawać suwaki gdy komponent nie będzie się mieścił w oknie

1 użytkowników online, w tym zalogowanych: 0, gości: 1