我有一个程序代表不同年龄组人口统计的8个不同广告。我的程序是打印出某个人口统计信息,具体取决于我的for
循环中随机数量最多的人。在我的输出中,它总是显示为"老年人#34;并且甚至没有返回图片。
问题:我的循环是否正确地将数字递增到每个组?为什么我的ImageIcons不会出现?
编辑:此代码以下是ADVERTISEMENT
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;
}
}
答案 0 :(得分:0)
您的问题的答案:为什么我的ImageIcons不会出现?
图片的路径可能有误。您可以查看ImageIcon
文档here。
如果您要从类路径加载图片,可以使用ClassLoader
加载图片。
new ImageIcon(AdPanel.class.getResource(&#34; /src/84-90.jpg")。getFile())
如果要从文件系统加载图像,则图像的路径必须为absolute path
。