Я пытаюсь создать простую игру, в которой поле (инопланетянин) происходит в каждой строке (слева направо/справа налево), затем идет вниз и щелчком мыши будет мяч (огонь), и когда поле и мяч встречаются, игрок выигрывает, иначе инопланетянин вторгается на планету.DrawRect в JPanel, не показывающем
У меня есть идея игры от [http://www.stanford.edu/class/cs106a/cgi-bin/classhandouts/23-ufo-game.pdf][1] Стэнфорд лекции [ 1]:
, поэтому я попытался сделать так, используя мой код.
package spaceInvader;
import javax.swing.JFrame;
public class Main {
public static void main(String args[]) throws InterruptedException{
JFrame jf = new JFrame("YY");
Space_GUI sg = new Space_GUI();
jf.add(sg);
jf.setSize(500,500);
jf.setVisible(true);
jf.setContentPane(sg);
Thread.sleep(2000);
sg.rc.move();
}
}
package spaceInvader;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Space_GUI extends JPanel{
public RectangleComponent rc;
public Space_GUI(){
rc = new RectangleComponent();
add(rc);
}
}
package spaceInvader;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JComponent;
public class RectangleComponent extends JComponent{
private int _xCoord;
private int _yCoord;
private static final int SIZE = 50;
public RectangleComponent(){
_xCoord = 10;
_yCoord = 10;
repaint();
}
public void move(){
_xCoord = 20;
_yCoord = 20;
repaint();
}
public void paintComponent(Graphics g){
_xCoord = getWidth()/2;
_yCoord = getHeight()/2;
super.paintComponent(g);
g.setColor(Color.black);
g.drawRect(_xCoord, _yCoord, SIZE, SIZE);
g.fillRect(_xCoord, _yCoord, SIZE, SIZE);
}
}
В моем коде я пытаюсь просто показать окно, но затем нет показов. Я попытался добавить JButton, и только эта кнопка показывает, он не показывает окно.
Какая коробка? Нет коробки для рисования? Что такое «RectangleComponent»? –
RectangleComponent - это мой класс, который должен рисовать Box (Alien) от drawRect .. и будет добавлен в JPanel .. но, к сожалению, он не показывает поле – jko
, возможно, вам следует показать код для RectangleComponent. –