1

を作成した行にエラーがありcatch、jframe に画像を追加する方法を知りたいです。いろいろやってみたのですが、うまくいきません どなたか教えていただけないでしょうか?

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import  java.io.File;
import java.awt.*;
import java.awt.image.*;

public class Frame extends JFrame {
     private JLabel foto;   
    // private JButton previous, next;
    public Frame() throws Exception{
        super("Colors");
        setLayout(new FlowLayout());

        BufferedImage imagen = null;

        try{
             imagen = ImageIO.read(new File("C:\\Users\\Juan Barrientos\\Desktop\\cuadro.bmp"));
            foto.setIcon(new ImageIcon(imagen));
        }catch(IOException e){  
             foto.setIcon(null);

         }

        // ImageIcon image = new ImageIcon("C:\\Users\\Juan Barrientos\\Desktop\\cuadro.bmp");
        // JLabel foto = new Jlabel(image);
        // add(foto,BorderLayout.CENTER);

       JButton rojo = new JButton ("Rojo");
        add(rojo);
        JButton azul = new JButton ("Azul");
        add(azul);
        JButton verde = new JButton ("Verde");
        add(verde);
        JButton rva = new JButton ("RVA");
        add(rva);
        JButton rav = new JButton ("RAV");
        add(rav);


    }

    public static void main(String[] ar) throws Exception{
        Frame color1=new Frame();
        color1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        color1.setSize(800, 800);
        color1.setBounds(0,0,300,200);
        color1.setResizable(true);
        color1.setVisible(true);
    }
}
4

1 に答える 1

0

fotoインスタンス化されていないため、null ポインター例外がスローされます。独自のコードをデバッグすることは、学習するための最良の方法の 1 つです。ただし、特に細かいグラフィックを配置する場合は、従うべき本またはチュートリアルを絶対に見つける必要があります.

于 2013-09-13T01:57:48.973 に答える