以下のコードは、私がストリーミングカメラを表示する私の見解です。コントローラーハンドルはイメージを設定し、JInternalFrameを再描画します。カメラの画像がタイトルバーのJInternalFrame全体をカバーするので、私はこれに問題があります。私はJPanelを使用しようとしましたが、JInternalFrameを拡張しているため、JPanelでイメージを取得する際に問題がありました。JInternalFrame再描画の問題
public class CameraView extends JInternalFrame{
private BufferedImage image;
public CameraView(){
super("Camera", false,false,false, false);
setSize(500,500);
setLocation(200,200);
}
@Override
public void paint(Graphics g){
g.drawImage(image, 0, 0, null);
}
public void setImage(BufferedImage image){
this.image = image;
}
}
あなたは 'super.paint'を呼び出さずに' paint'をオーバーライドしました。 'JInternalFrame'が自身の装飾や他のコンテンツをペイントする機会を持たないようにします。一般的に言えば、 'paint'をオーバーライドしないで' paintComponent'を好むべきですが、この場合は 'JInternalFrame'に' JLabel'を追加して問題を解決してください。 – MadProgrammer