Как поместить изображение 800x600 в jLabel без прокрутки, чтобы увидеть все изображение - PullRequest
0 голосов
/ 04 января 2011

я пробовал такие способы, как getScaledInstance, но все не работает.я не мог найти какие-либо решения онлайн.код, который я сейчас использую:

public class ShowImage_1 extends Panel {

    BufferedImage image;

    public ShowImage_1() {
        try {
            File input = new File("C:/Lighthouse.jpg");
            image = ImageIO.read(input);
            image.getGraphics().drawImage(image, 0, 0, 400, 400, null);
        } catch (IOException ie) {
            System.out.println("Error:" + ie.getMessage());
        }
    }

    public void paint(Graphics g) {
        g.drawImage(image, 0, 0, null);
    }

    static public void main(String args[]) throws Exception {
        JFrame frame = new JFrame("Display image");
        Panel panel = new ShowImage_1();

        frame.getContentPane().add(panel);
        frame.pack();
        frame.setVisible(true);
    }
}

не показывает полное изображение на панели.Любая идея о том, как это сделать?

Я хочу добиться этого эффекта: http://img209.imageshack.us/i/77894822.png/

но я получаю вот что: http://img600.imageshack.us/i/19267006.png/

любойдругой код, который я могу использовать, чтобы получить это?

Ответы [ 2 ]

1 голос
/ 04 января 2011

Сделайте панель достаточно большой, чтобы вместить изображение. Это может решить вашу проблему

0 голосов
/ 04 января 2011

Добавьте изображение в JLabel.Добавьте метку к рамке.Затем используйте:

frame.pack();

НЕ

frame.setSize(800, 600);

Если вам нужна дополнительная помощь, опубликуйте свой SSCCE , демонстрирующий проблему.

...