Как применить JScrollPane к - Java

Узнай цену своей работы

Формулировка задачи:

Приветствую Всех. Вот класс:
public class DrawImg  extends JPanel{
 
    BufferedImage   img     = null;
    Image           image   = null;
 
    DrawImg (BufferedImage bImg) {
        super();
        img = bImg;
    }
 
    @Override
    public void paint(Graphics g) {
        super.paint(g);
    }
 
    @Override
    public void paintComponent(Graphics g) {
        image = img.getScaledInstance(500,800,Image.SCALE_DEFAULT);
        g.drawImage(img,5,5,500,800,null);
 
    }
}
Вот main:
DrawImg myImg = new DrawImg(bufImg);
        myImg.setLayout(new GridLayout(2,1));
        JScrollPane scrollmyImg = new JScrollPane(myImg);
        frame.add(scrollmyImg);
Не появляется JScrollPane

scrollmyImg

. Почему так? Что нужно сделать? Где лучше выводить изображение в

paintComponent ()

или в

paint()

?

Решение задачи: «Как применить JScrollPane к»

textual
Листинг программы
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
 
public class Main2  {
 
    JFrame frame;
    BufferedImage bufImg;
 
    Main2 () throws IOException {
 
        frame = new JFrame();
        frame.setLayout( new GridLayout(1,1));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //frame.setResizable(false);
        frame.setSize(800,800);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
 
 
 
        String strURL = "http://i.playground.ru/i/93/88/85/10/pix/image.jpg";
        BufferedImage bufImg ;
        bufImg = ImageIO.read(new URL(strURL));
        DrawImg myImg = new DrawImg(bufImg);
        myImg.setLayout(new GridLayout(1,1));
        JScrollPane scrollmyImg = new JScrollPane(myImg);
        frame.add(scrollmyImg);
    }
 
    public static void main(String[] args) {
 
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
 
                try {
                    new Main2();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });
 
 
    }
}

Оцени полезность:

14   голосов , оценка 3.929 из 5