0

NetBean のビルトイン GUI ビルダーを使用して Gui を作成しましたが、ユーザーが画像を選択できるようにするコードを追加しようとしています。画像は JLabel 内の ImageIcon に表示されますが、画像を表示できません。

  private void jButton2MouseClicked(java.awt.event.MouseEvent evt) {                                      
     CardLayout cl = (CardLayout)(mainPanel.getLayout());         
     cl.show(mainPanel, "uploadImage" );

     File im1 = null;
     JFileChooser chooser = new JFileChooser();
     FileNameExtensionFilter filter = new FileNameExtensionFilter(
            "JPG, GIF, PNG Images", "jpg", "gif", "png");
        chooser.setFileFilter(filter);
        int returnVal = chooser.showOpenDialog(mainPanel);

    try {
        if(returnVal == JFileChooser.APPROVE_OPTION) {       
                im1 =  chooser.getSelectedFile();
        }
        else {
            throw new IOException();
        }
        BufferedImage buff = ImageIO.read(im1);

        BufferedImage resizedImage = new BufferedImage(imagePanel.getWidth(), imagePanel.getHeight(), BufferedImage.TYPE_INT_RGB);
        Graphics2D g = resizedImage.createGraphics();
        g.drawImage(buff, 0, 0, imagePanel.getWidth(), imagePanel.getHeight(), null);
        g.dispose();          

        JLabel picLabel = new JLabel(new ImageIcon (resizedImage));
        picLabel.setVisible(true);

        imagePanel.add(picLabel);// this is the Jpanel that should displpay the image 
        this.validate(); // this refers to the frame that holds all of the components
    } catch (IOException ex) {
        Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
    }
}    

フレームと画像アイコンを保持するパネルで検証と再検証を試みましたが、何も機能していないようです。どんな助けでも大歓迎です。

4

1 に答える 1

0

画像を追加した後、 repaint() メソッドを試すことができます。

于 2013-05-08T10:11:29.913 に答える