Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 油漆组件是';我没打电话_Java_User Interface - Fatal编程技术网

Java 油漆组件是';我没打电话

Java 油漆组件是';我没打电话,java,user-interface,Java,User Interface,很抱歉,一个可能已经解决的问题,但我已经到处搜索,找不到解决方案。我刚刚发现,不管发生什么,paintComponent都不会被调用,不管我把repaint()放在哪里 我已经尝试了几种不同的方法,并尝试从不同的领域调用它,但不管怎样,它似乎永远不会被调用 import java.awt.*; import java.awt.event.*; import java.awt.Component; import javax.swing.*; import javax.swing.BoxLayout

很抱歉,一个可能已经解决的问题,但我已经到处搜索,找不到解决方案。我刚刚发现,不管发生什么,paintComponent都不会被调用,不管我把repaint()放在哪里

我已经尝试了几种不同的方法,并尝试从不同的领域调用它,但不管怎样,它似乎永远不会被调用

import java.awt.*;
import java.awt.event.*;
import java.awt.Component;
import javax.swing.*;
import javax.swing.BoxLayout;
import javax.swing.event.*;
import java.awt.event.KeyEvent;
import java.util.Scanner;
public class LevelOne extends JPanel implements KeyListener
{
        int width = 0;
        int height = 0;
        int bx = 0;
        int hx = 0;
        int by = 0;
        int hy = 0;
Image joe = new ImageIcon("upgrademan.png").getImage();
        ImagePanel2 panel2 = new ImagePanel2(new ImageIcon("levelone.png").getImage());
        JFrame frame = new JFrame ("Level One");


        public LevelOne()
        {
            frame.getContentPane().add(panel2);
            Game game1 = new Game();
            frame.setSize(600, 600);


          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setBackground(Color.WHITE);
      frame.pack();
            frame.setVisible(true);
            levelOne();
            requestFocus();
        }

    public void levelOne()
    {
      repaint(); // this doesn't call paintComponent below?
    }

   public void paintComponent(Graphics g)
   {
    super.paintComponent(g);       //draw background color
    System.out.println("this enters paintComponent");
    g.drawImage(joe,100,100,200,200, null);  // this doesn't seem to be drawing
    requestFocus();

    }
    public void keyPressed(KeyEvent e) // all they keyListener  methods
    {
    }
    public void keyTyped(KeyEvent e)
    {

    }
    public void keyReleased(KeyEvent e)
    {

    }

  }
  class ImagePanel2 extends JPanel {            // this entire class simply exists to call in order to set a picture as a background

     Image img;

    public ImagePanel2(String img) {        // just sets img in method to class img variable
        this(new ImageIcon(img).getImage());
    }

    public ImagePanel2(Image img) {     // sets size of picture
        this.img = img;
        Dimension dims = new Dimension(600,600);
        setPreferredSize(dims);
        setMinimumSize(dims);
        setMaximumSize(dims);
        setSize(dims);
        setLayout(null);

    }

    public void paintComponent(Graphics g) {        // draws image
        g.drawImage(img, 0, 0, this);
    }
  }

我期望ImagePanel类打印一个背景,它确实打印了,但我也期望名为joe的图像打印,它没有打印。

显示“joe”的唯一位置是LevelOne实例的paintComponent()方法。但您从未将LevelOne实例添加到您的框架或该框架中的任何面板。

我真的不明白您的意思,我需要做什么?