【问题标题】:My code does not show images from frame我的代码不显示帧中的图像
【发布时间】:2013-09-22 20:22:58
【问题描述】:
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?

【问题讨论】:

  • 部署时,这些资源可能会变成embedded-resource。在这种情况下,资源必须由URL 而不是File 访问。查看标签的info page,了解形成URL的方法。
  • setSize(10000,10000); JumboTron 打算用于什么屏幕?
  • 别忘了接受答案 :)
  • 在这里制作了stackoverflow.com/questions/8960381/…,但现在我的项目附近有一个感叹号。我重新开始神清气爽。似乎没有错误,但它不会执行并显示我的窗口?我在源代码中创建了一个图像文件夹,其中包含一个图像文件和 uttons[i][j]=new JButton(new ImageIcon(getClass().getResource("/images/1.jpg")));但它不起作用。 ——
  • 在解决构建路径错误之前无法构建项目。错误是那个。但是我的项目有图像文件夹,并且在它的图像文件夹中。这怎么可能

标签: java image swing jbutton embedded-resource


【解决方案1】:

如果图像是内部的(您想要一个相对于您的项目的位置,或者可能打包到您的 jar 中):

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

路径是相对的,因此 path/ 将是与您的项目在同一文件夹中的文件夹(或打包到您的 jar 中)。

如果您想要外部图像,只需将路径传递给 ImageIcon 构造函数(例如“C:/.../file.png”)。但不建议这样做,因为最好将其用作资源。

有关 ImageIcon 构造函数的更多信息,请参阅here。有关加载类资源的更多信息,请参阅here(Javadoc 链接)

【讨论】:

  • ImageIO 通常是更好的选择,因为当加载图像时出现问题时它会抛出异常,并且它会在一次调用中加载图像,而不是使用后台线程...恕我直言
  • 小心! bin 是一个临时文件,每次调用 Project/Clean 时都会清除 bin!
  • @johnbrown:哎呀,你为什么又问同样类型的问题?那么你应该已经知道系统资源了。
  • 我不知道,我现在做不到
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-12
  • 2018-05-30
  • 1970-01-01
相关资源
最近更新 更多