データがデータベースに送信されたときに、JPanel の背景画像をリロードする必要があります。データベースから画像を取り込む JPanel を作成します。そして、画像を更新して送信すると、背景が自動的に変更されます。repaint() と revalidate() も使用しようとしましたが、うまくいきません。アプリケーションを再起動して再度実行する必要があります。動作します。
これは、JPanel で背景を表示するための私のコードです。
public void getLogo(Company company, PanelCompany view) {
JPanel panel = new BackgroundImage(company.getLogoBlob());
panel.revalidate();
panel.setVisible(true);
panel.setBounds(10, 10, 120, 120);
view.getPanelPhoto().add(panel);
}
これは私のヘルパークラスです:
public class BackgroundImage extends JPanel{
private Image image;
public BackgroundImage (InputStream input) {
try {
image = ImageIO.read(input);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void paintComponent(Graphics grphcs) {
super.paintComponent(grphcs);
Graphics2D gd = (Graphics2D) grphcs.create();
gd.drawImage(image, 0, 0, getWidth(), getHeight(), this);
gd.dispose();
}
}
解決策はありますか?ご清聴ありがとうございました:)