-1
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;




public class Concentration extends JFrame implements ActionListener {

    private JButton buttons[][]=new JButton[4][4];
    int i,j,n;

    public Concentration() {

        super ("Concentration");    
        JFrame frame=new JFrame();
        setSize(10000,10000);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel=new JPanel(new GridLayout(4,4));
        panel.setSize(4000, 4000);

        for( i=0; i<buttons.length; i++){
            for (j=0; j<buttons[i].length;j++){ 
                n=i*buttons.length+buttons[i].length;
                buttons[i][j]=new JButton(new ImageIcon("1.jpg"));

                panel.add(buttons[i][j]);

            }
        }
        add(panel);
        pack();
        setVisible(true);

    }
    public static void main(String args[]){
        new Concentration();
    }

}

パッケージフォルダーの画像フォルダーに画像を入れましたが、表示されません。私は何を間違っていますか?

メモリーゲームを作りますが、まだ何もできません。また、アイコンの代わりにラベルを使用して画像を表示する必要がありますか? それとも jtogglebutton または jbutton ですか?

4

1 に答える 1

2

画像が内部の場合 (プロジェクトに相対的な場所が必要な場合、または jar にパッケージ化されている場合):

new ImageIcon(getClass().getResource("/images/1.jpg"));

パスは相対パスであるため、path/ はプロジェクトと同じフォルダー内のフォルダーになります (または jar にパッケージ化されます)。

外部画像が必要な場合は、ImageIcon コンストラクターにパス (例: "C:/.../file.png") を渡すだけです。ただし、リソースとして使用する方がよいため、これはお勧めしません。

ImageIcon コンストラクターの詳細については、こちらを参照してください。クラス リソースの読み込みの詳細については、こちら(Javadoc リンク)を参照してください。

于 2013-09-22T20:25:13.727 に答える