0

MySQL データベースに接続しており、データベースから抽出されたブロブ (画像) が JDialog に正しくレンダリングされない場合に発生する問題を解決しようとしています (スクリーンショットを参照)。注: 複数のイメージ (サイズが ~50 ~ 60 Kb) があり、一部は正しく (フル) 表示されますが、一部は完全にロードされていないように見えます。イメージを再保存して MySQL に挿入しようとしましたが、問題は解決しません。

ここに画像の説明を入力

何か案は?

私のコードは次のとおりです。

MenuItemPhoto.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {

                    try {
                        String sql = "select photo from RDSSPhoto where id ='38'";
                        pst = conn.prepareStatement(sql);
                        rs = pst.executeQuery();

                        if (rs.next()) {

                            byte[] imagedata = rs.getBytes("photo");
                            format = new ImageIcon(imagedata);
                            JOptionPane pane = new JOptionPane((Frame) null, JOptionPane.PLAIN_MESSAGE, JOptionPane.DEFAULT_OPTION);

                            JDialog d = pane.createDialog((Frame) null, "Photo");

                            pane.setIcon(format);
                            if (!d.isVisible()) {
                                d.setLocationRelativeTo(RDSSView.this);
                                d.pack();
                            }

                            d.setVisible(true);

                        }

                    } catch (Exception e) {
                        e.printStackTrace();
                    }

                }

        });
4

2 に答える 2

0

それはクレイジーです。私は前にそれを見たことがありません。ダイアログには更新/再描画などが必要なようです。

これを試すことができます:

SwingUtilities.invokeLater(new Runnable()
{
   public void run() {
      d.pack();
   }     
}
于 2012-11-20T16:16:58.463 に答える