首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImageIcon没有出现

ImageIcon没有出现
EN

Stack Overflow用户
提问于 2014-11-07 18:51:37
回答 1查看 119关注 0票数 1

我有一个程序,代表8个不同的广告,为不同年龄组的人口统计。我的程序是打印一个特定的人口学,这取决于谁在我的for循环中拥有最多的随机数。在我的输出中,它总是简单地显示为“老年人”,甚至不返回图片。

问题:我的循环是否正确地将数字随机递增到每一组?为什么我的ImageIcons没有出现?

编辑:下面的代码是类ADVERTISEMENT

代码语言:javascript
复制
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.*;

public class AdPanel extends JPanel {

    int THIRTEEN_18 = 0;
    int EIGHTEEN_24 = 0;
    int TWENTYFOUR_33 = 0;
    int THIRTYTHREE_42 = 0;
    int FORTYTWO_58 = 0;
    int FIFTYEIGHT_75 = 0;
    int SEVENTYFIVE_84 = 0;
    int EIGHTYFOUR_90 = 0;

    JLabel Ad1Description;
    JLabel Ad2Description;
    JLabel Ad3Description;
    JLabel Ad4Description;
    JLabel Ad5Description;
    JLabel Ad6Description;
    JLabel Ad7Description;
    JLabel Ad8Description;

    JLabel Ad1Pic;
    JLabel Ad2Pic;
    JLabel Ad3Pic;
    JLabel Ad4Pic;
    JLabel Ad5Pic;
    JLabel Ad6Pic;
    JLabel Ad7Pic;
    JLabel Ad8Pic;

    JButton AdButton = new JButton("What's your target demographic?");


    Advertisement Ad1 = new Advertisement("13-18", "Teenagers and young adults", new ImageIcon("/.src/13-18.jpg")); 
    Advertisement Ad2 = new Advertisement("18-24", "College students", new ImageIcon("/.src/18-24.jpg"));
    Advertisement Ad3 = new Advertisement("24-33", "College graduates", new ImageIcon("/.src/24-33.jpg"));
    Advertisement Ad4 = new Advertisement("33-42", "People starting to have mid-life crises", new ImageIcon("/.src/33-42.jpg"));
    Advertisement Ad5 = new Advertisement("42-58", "People starting to become old", new ImageIcon("/.src/42-58.jpg"));
    Advertisement Ad6 = new Advertisement("58-75", "People who are old", new ImageIcon("/.src/58-75.jpg"));
    Advertisement Ad7 = new Advertisement("75-84", "People who are REALLY old", new ImageIcon("/.src/75-84.jpg"));
    Advertisement Ad8 = new Advertisement("84-90", "Teenagers and young adults", new ImageIcon("/.src/84-90.jpg"));

    public AdPanel()
    {
        //components to panel
        Dimension myDimension = new Dimension(1000,500);
        setPreferredSize(myDimension);
        setBackground(Color.cyan);

        //descriptions of each ad
        Ad1Description = new JLabel(Ad1.getDescription());
        Ad2Description = new JLabel(Ad2.getDescription());
        Ad3Description = new JLabel(Ad3.getDescription());
        Ad4Description = new JLabel(Ad4.getDescription());
        Ad5Description = new JLabel(Ad5.getDescription());
        Ad6Description = new JLabel(Ad6.getDescription());
        Ad7Description = new JLabel(Ad7.getDescription());
        Ad8Description = new JLabel(Ad8.getDescription());

        //pictures for each ad
        Ad1Pic = new JLabel(Ad1.getFilePath());
        Ad2Pic = new JLabel(Ad2.getFilePath());
        Ad3Pic = new JLabel(Ad3.getFilePath());
        Ad4Pic = new JLabel(Ad4.getFilePath());
        Ad5Pic = new JLabel(Ad5.getFilePath());
        Ad6Pic = new JLabel(Ad6.getFilePath());
        Ad7Pic = new JLabel(Ad7.getFilePath());
        Ad8Pic = new JLabel(Ad8.getFilePath());

        for (int i = 0; i < 1000; i++)
        {

            Random random = new Random();
            int rand = random.nextInt(78) + 13;

        if (rand > 13 && rand < 18)
        {
            THIRTEEN_18++;
        }

        else if (rand > 18 && rand < 24)
        {
            EIGHTEEN_24++;
        }
        else if (rand > 24 && rand < 33)
        {
            TWENTYFOUR_33++;
        }
        else if (rand > 33 && rand < 42)
        {
            THIRTYTHREE_42++;
        }
        else if (rand > 58 && rand < 75)
        {
            FIFTYEIGHT_75++;
        }
        else if (rand > 75 && rand < 84)
        {
            SEVENTYFIVE_84++;
        }
        else if (rand > 84 && rand <= 90)
        {
            EIGHTYFOUR_90++;
        }

        }


        //for Ad1
        add(Ad1Description);
        add(Ad1Pic);
        Ad1Description.setVisible(false);
        Ad1Pic.setVisible(false);

        //for Ad2
        add(Ad2Description);
        add(Ad2Pic);
        Ad2Description.setVisible(false);
        Ad2Pic.setVisible(false);

        //for Ad3
        add(Ad3Description);
        add(Ad3Pic);
        Ad3Description.setVisible(false);
        Ad3Pic.setVisible(false);

        //for Ad4
        add(Ad4Description);
        add(Ad4Pic);
        Ad4Description.setVisible(false);
        Ad4Pic.setVisible(false);

        //for Ad5
        add(Ad5Description);
        add(Ad5Pic);
        Ad5Description.setVisible(false);
        Ad5Pic.setVisible(false);

        //for Ad6
        add(Ad6Description);
        add(Ad6Pic);
        Ad6Description.setVisible(false);
        Ad6Pic.setVisible(false);

        //for Ad7
        add(Ad7Description);
        add(Ad7Pic);
        Ad7Description.setVisible(false);
        Ad7Pic.setVisible(false);

        //for Ad8
        add(Ad8Description);
        add(Ad8Pic);
        Ad8Description.setVisible(false);
        Ad8Pic.setVisible(false);

        //for AdButton
        add(AdButton);
        AdButton.addActionListener(new buttonListener());

    }   
        private class buttonListener implements ActionListener

        {
            @Override
            public void actionPerformed(ActionEvent e) {

        int highestViewers = Math.max(THIRTEEN_18, Math.max(EIGHTEEN_24, Math.max(TWENTYFOUR_33, Math.max(THIRTYTHREE_42, Math.max(FORTYTWO_58, Math.max(FIFTYEIGHT_75, Math.max(SEVENTYFIVE_84, Math.max(EIGHTYFOUR_90, 0))))))));

        if(THIRTEEN_18 >= highestViewers)
        {
            Ad1Pic.setVisible(true);
            Ad1Description.setVisible(true);
        }

        else if (EIGHTEEN_24 >= highestViewers)
        {
            Ad2Pic.setVisible(true);
            Ad2Description.setVisible(true);
        }
        else if (TWENTYFOUR_33 >= highestViewers)
        {
            Ad3Pic.setVisible(true);
            Ad3Description.setVisible(true);
        }

        else if (THIRTYTHREE_42 >= highestViewers)
        {
            Ad4Pic.setVisible(true);
            Ad4Description.setVisible(true);
        }

        else if (FORTYTWO_58 >= highestViewers)
        {
            Ad5Pic.setVisible(true);
            Ad4Description.setVisible(true);
        }
        else if (FIFTYEIGHT_75 >= highestViewers)
        {
            Ad6Pic.setVisible(true);
            Ad6Description.setVisible(true);
        }
        else if (SEVENTYFIVE_84 >= highestViewers)
        {
            Ad7Pic.setVisible(true);
            Ad7Description.setVisible(true);
        }
        else if (EIGHTYFOUR_90 >= highestViewers)
        {
            Ad8Pic.setVisible(true);
            Ad8Description.setVisible(true);
        }

            }
        }


    }



import java.util.Random;

import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.Spring;


public class Advertisement {


    private String title;
    private String description;
    private ImageIcon picture;


    public Advertisement(String title, String description, ImageIcon FilePath)
    {
        this.title = title;
        this.description = description;
        this.picture = FilePath;
    }

    public String title()
    {
        return title;
    }

    public String getDescription()
    {
        return description;

    }

    public ImageIcon getFilePath()
    {
        return picture;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-07 20:46:55

你问题的答案是:为什么我的ImageIcons没有出现?

通往你的图像的道路可能是错误的。您可以查看ImageIcon文档这里

如果要从类路径加载图像,可以使用ClassLoader加载它们。

新ImageIcon(AdPanel.class.getResource("/src/84-90.jpg").getFile())

如果要从文件系统加载图像,则图像的路径必须是absolute path

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26808084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档