0

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/

それを取得するために使用できる他のコードはありますか?

4

2 に答える 2

1

画像を保持するのに十分な大きさのパネルを作成します。これにより、問題が解決する場合があります

于 2011-01-04T04:19:18.753 に答える
0

画像をJLabelに追加します。フレームにラベルを追加します。次に、以下を使用します。

frame.pack();

いいえ

frame.setSize(800, 600);

さらにサポートが必要な場合は、問題を示すSSCCEを投稿してください。

于 2011-01-04T04:36:59.203 に答える