为什么这些图像不显示?

臭虫

我正在使用Java的老虎机工作,到目前为止,我创建了一个按钮,该按钮将随机生成两张图片。由于某些原因,其中一张图片会显示,而另一张图片则不会。我不明白这个问题,因为这两个图片的代码完全相同。这是我的代码。请帮忙!

import java.applet.*;
import java.awt.*;
import javax.swing.JButton;
import javax.swing.JApplet;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.Random;
import javax.imageio.*;
import java.net.URL;
import java.io.*;
import java.awt.image.*;





public class slotmachine extends JApplet implements Runnable {
  JButton b1 = new JButton("START");
  JPanel p;
  int int1, int2;
  BufferedImage img= null;
  BufferedImage img2 = null;
  BufferedImage img3 = null;
  BufferedImage img4 = null;
  BufferedImage img5 = null;
  BufferedImage img6 = null;
  BufferedImage img7 = null;
  BufferedImage img8 = null;
  BufferedImage img9 = null;
  BufferedImage img10 = null;
  public slotmachine(){
    init();    
  }


  public void init() {

    this.setLayout(null);
    this.setSize(10000,10000);

    b1.setBounds(100,100,100,100);
    b1.addActionListener(new ActionListener() {

      public void actionPerformed(ActionEvent e){
        Random random1 = new Random();
        int1 = random1.nextInt(10);
        Random random2 = new Random();
        int2 = random2.nextInt(10);
        repaint();

      }


    });


    getContentPane().add(b1);

    try {

      img = ImageIO.read(new File("question.png"));
      img2 = ImageIO.read(new File("banana.png"));
      img3 = ImageIO.read(new File("chocolate.png"));
      img4 = ImageIO.read(new File("icecream.png"));
      img5 = ImageIO.read(new File("bell.png"));
      img6 = ImageIO.read(new File("apple.png"));
      img7 = ImageIO.read(new File("money.png"));
      img8 = ImageIO.read(new File("number-7.png"));
      img9 = ImageIO.read(new File("necklace.png"));
      img10 = ImageIO.read(new File("gloves.png"));
    } catch (IOException e) {
    }  

    repaint();

    this.setVisible(true);  
  }


  public void paint(Graphics g) {
    super.paintComponents(g);
    g.drawString("Int 1 is" + int1,30,30);
        g.drawString("Int 2 is" + int2,30,80);
    switch (int1) {
      case 0:

        g.setColor(Color.white);
        g.fillRect(300,300,300,500);
        g.drawImage(img, 300, 500, this);
        break;
      case 1:
        g.setColor(Color.white);
        g.fillRect(300,300,300,500);
        g.drawImage(img2,300,500,this);
        break;
      case 2:
        g.setColor(Color.white);
        g.fillRect(300,300,300,500);
        g.drawImage(img3,300,500,this);
        break;
      case 3:
        g.setColor(Color.white);
        g.fillRect(300,300,300,500);
        g.drawImage(img4,300,500,this);
        break;
      case 4:
        g.setColor(Color.white);
        g.fillRect(300,300,300,500);
        g.drawImage(img5,300,500,this);
        break;
      case 5:
        g.setColor(Color.white);
        g.fillRect(300,300,300,500);
        g.drawImage(img6,300,500,this);
        break;
      case 6:
        g.setColor(Color.white);
        g.fillRect(300,300,300,500);
        g.drawImage(img7,300,500,this);
        break;
      case 7:
        g.setColor(Color.white);
        g.fillRect(300,300,300,500);
        g.drawImage(img8,300,500,this);
        break;
      case 8:
        g.setColor(Color.white);
        g.fillRect(300,300,300,500);
        g.drawImage(img9,300,500,this);
        break;
      case 9:
        g.setColor(Color.white);
        g.fillRect(300,300,300,500);
        g.drawImage(img10,300,500,this);
        break;

    }


    switch (int2) {
      case 0:

        g.setColor(Color.white);
        g.fillRect(300,300,800,500);

        g.drawImage(img, 800, 500, this);
        break;
      case 1:
        g.setColor(Color.white);
        g.fillRect(300,300,800,500);
        g.drawImage(img2,800,500,this);
        break;
      case 2:
        g.setColor(Color.white);
        g.fillRect(300,300,800,500);
        g.drawImage(img3,800,500,this);
        break;
      case 3:
        g.setColor(Color.white);
        g.fillRect(300,300,800,500);
        g.drawImage(img4,800,500,this);
        break;
      case 4:
        g.setColor(Color.white);
        g.fillRect(300,300,800,500);
        g.drawImage(img5,800,500,this);
        break;
      case 5:
        g.setColor(Color.white);
        g.fillRect(300,300,800,500);
        g.drawImage(img6,800,500,this);
        break;
      case 6:
        g.setColor(Color.white);
        g.fillRect(300,300,800,500);
        g.drawImage(img7,800,500,this);
        break;
      case 7:
        g.setColor(Color.white);
        g.fillRect(300,300,800,500);
        g.drawImage(img8,800,500,this);
        break;
      case 8:
        g.setColor(Color.white);
        g.fillRect(300,300,800,500);
        g.drawImage(img9,800,500,this);
        break;
      case 9:
        g.setColor(Color.white);
        g.fillRect(300,300,800,500);
        g.drawImage(img10,800,500,this);
        break;

    }

        this.setVisible(true);


  }

}
卢克·梅拉亚

无需扩展JApplet并覆盖它的paint和init方法,只需使用JLabel并将其设置为具有图像图标即可。

例如。

import java.io.File;
import java.util.ArrayList;
import java.util.Random;
import javax.swing.ImageIcon;

public class Frame extends javax.swing.JFrame{

//Random varible
private Random rand = new Random();
//Array List to hold the file names and locations
private ArrayList<File> pictures;

//Class call
public Frame(){
    initComponents();
}

//Generates the gui. I Used netbeans to make this for me.                        
private void initComponents() {

    pictureLable1 = new javax.swing.JLabel();
    pictureLable2 = new javax.swing.JLabel();
    generateButton = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    generateButton.setText("Generate");
    generateButton.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            generateButtonActionPerformed(evt);
        }
    });

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(pictureLable1, javax.swing.GroupLayout.PREFERRED_SIZE, 175, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGap(31, 31, 31)
            .addComponent(pictureLable2, javax.swing.GroupLayout.DEFAULT_SIZE, 174, Short.MAX_VALUE)
            .addContainerGap())
        .addGroup(layout.createSequentialGroup()
            .addGap(151, 151, 151)
            .addComponent(generateButton)
            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                .addComponent(pictureLable2, javax.swing.GroupLayout.DEFAULT_SIZE, 116, Short.MAX_VALUE)
                .addComponent(pictureLable1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 139, Short.MAX_VALUE)
            .addComponent(generateButton)
            .addContainerGap())
    );

    pack();
}                   

private void generateButtonActionPerformed(java.awt.event.ActionEvent evt) {                                               
    this.generate();
}                                              

/**
 * Generates the picture and then sets the labels accordingly.
 */
public void generate(){
    //Init the array list
    pictures = new ArrayList<>();

    //Add the pictures to the array list
    pictures.add(new File("C:/Users/UserName/Desktop/TestPictures/Picture1.png"));
    pictures.add(new File("banana.png"));
    pictures.add(new File("chocolate.png"));
    pictures.add(new File("icecream.png"));
    pictures.add(new File("bell.png"));
    pictures.add(new File("apple.png"));
    pictures.add(new File("money.png"));
    pictures.add(new File("number-7.png"));
    pictures.add(new File("necklace.png"));
    pictures.add(new File("gloves.png"));

    //Gets the random number for the picture
    int number = rand.nextInt((pictures.size() -1/*Max*/ - 0/*min*/) + 1) + 0/*Min*/;

    //Set the image icon to a randomly chosen image
    this.pictureLable1.setIcon(new ImageIcon(pictures.get(number).getAbsolutePath()));

    //Gets the random number again for the second picture
    number = rand.nextInt((pictures.size() -1/*Max*/ - 0/*min*/) + 1) + 0/*Min*/;

    //Set the second image icon to a randomly chosen image
    this.pictureLable1.setIcon(new ImageIcon(pictures.get(number).getAbsolutePath()));
}

/**
 * Your run of mill main method.
 *
 * @param args
 */
public static void main(String args[]){
    new Frame().setVisible(true);
}

// Variables declaration                
public javax.swing.JButton generateButton;
public static javax.swing.JLabel pictureLable1;
public static javax.swing.JLabel pictureLable2;

}

希望这可以帮助。

编辑:

确保像第一个图像一样设置路径名,以便Java知道该图像在哪里。

另外,请尽量不要在开头使用非大写字母来命名您的班级,使用UseFrame代替frame,只是一个好习惯。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么不显示图像?

来自分类Dev

为什么不显示:after图像

来自分类Dev

为什么我的图像中心不显示?

来自分类Dev

为什么JEditorPane不显示用HTML编写的图像?

来自分类Dev

为什么我的栅格图像不显示在levelplot上?

来自分类Dev

为什么不显示Images.xcassets中的图像?

来自分类Dev

为什么在Facebook上的共享页面不显示图像?

来自分类Dev

为什么图像不显示在应用程序中

来自分类Dev

为什么背景图像不显示在 div 容器中?

来自分类Dev

为什么 Android 中不显示 Linearlayout 的背景图像?

来自分类Dev

为什么这个 GUI 应用程序不显示图像?

来自分类Dev

自定义单选按钮:为什么不显示图像?

来自分类Dev

为什么在反转字符串时这些字符不显示?

来自分类Dev

使用引导程序为什么这些标签和输入控件不显示在同一行

来自分类Dev

为什么显示的图像有时显示而其他时间不显示?

来自分类Dev

为什么显示的图像有时显示而其他时间不显示?

来自分类Dev

为什么<feDropShadow>不显示?

来自分类Dev

为什么舱口不显示?

来自分类Dev

为什么不显示TabContainer?

来自分类Dev

分区不显示!为什么?

来自分类Dev

为什么 MessageBox 不显示?

来自分类Dev

为什么评论不显示?

来自分类Dev

为什么数据不显示?

来自分类Dev

为什么 ASTextNode 不显示?

来自分类Dev

Java将图像添加到JPanel。为什么图像不显示?

来自分类Dev

如何将图像添加到小部件?为什么不显示图像?

来自分类Dev

如何将图像添加到小部件?为什么不显示图像?

来自分类Dev

为什么instagram嵌入代码仅显示instagram图标,而不显示图像?

来自分类Dev

为什么“ man CMD”什么也不显示?

Related 相关文章

热门标签

归档