0
私はSwingを初めて使用し、JFrame
に画像の背景を追加しようとしています。しかし私のpaintComponent
メソッドは機能しません。私のコードを修正してイメージがバックグラウンドで描かれるようにするための提案をお願いしますか?paintComponentコードが動作しません
コードは以下の通りです:代わりに、そのコンテンツペインのpaintComponent
を上書きJFrame
のpaintComponent
をオーバーライド
// all necessary imports have been added.
public class Menu extends JFrame {
private Image backgroundImage;
private JFrame frame;
public static void main(String[] args) throws IOException {
Menu window = new Menu();
window.frame.setVisible(true);
}
public Menu() throws IOException {
initialize();
}
public void initialize() throws IOException {
frame = new JFrame();
frame.setBounds(100, 100, 312, 294);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
}
public void paintComponent(Graphics g) throws IOException {
backgroundImage = ImageIO.read(new File("P:\\Profiles\\workspace\\Games\\Images\\matrix.jpg"));
g.drawImage(backgroundImage, 0, 0, null);
}
}
こんにちはあなたが助けてくれてありがとう。それは今働いているようだ。将来的に私がまだ新しいので、なぜそれが動作していない前に、なぜこのミスを再びしたくないか説明することができます。 –
'JFrame'は内容パネルとして' JPanel'を使います。 'JFrame'からペイントメソッドをオーバーライドする用途はありません。あなたが実際に見るのはフレームのコンテンツパネルです(前面にあり、このフレームに直接ペイントしようとするものはすべて隠されています)。絵をカスタマイズしたい – Berger
* "JFrameのpaintComponentを無効にすることは役に立ちません" * - 実際は不可能です。 – MadProgrammer