-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 回答