Недавно я пытался сделать свою первую игру на Java, но застрял, когда мой класс понг не рисовал. Вероятно, дело в том, что он запускается из Menu.class, но я не уверен, как это исправить. Это также не создает новое окно, если вы не запускаете запустить в полноэкранном режиме?
В любом случае, спасибо.
public class Menu extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
public static int fs = 0;
Image pong = new ImageIcon ("C:\\Users\\me\\Pictures\\pong.jpg").getImage();
JPanel pane = new JPanel();
JButton start = new JButton("Start!");
JButton exit = new JButton("Exit!");
Menu()
{
super("Pong"); setBounds(100,100,400,284);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container con = this.getContentPane();
con.add(pane); pane.add(start); pane.add(exit);
start.addActionListener(this);
start.requestFocus();
exit.addActionListener(this);
exit.requestFocus();
setVisible(true);
}
public void paint(Graphics g) {
g.drawImage(pong, 0, 13, null);
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == start)
{
int n = JOptionPane.showConfirmDialog(null ,"Would you like to play fullscreen?","Option - Fullscreen", JOptionPane.YES_NO_OPTION);
setVisible(true);
if(n == JOptionPane.YES_OPTION){
fs = 1;
Pong.StartCall(fs);
}else if (n == JOptionPane.NO_OPTION) {
fs = 2;
Pong.StartCall(fs);
}
}else if(source == exit){
System.exit(0);
}
}
public static void main(String args[]) {
new Menu();
}
}
public class Pong extends Applet implements Runnable {
private static final long serialVersionUID = 1L;
static boolean fs;
static Pong p = new Pong();
JFrame w = new JFrame("Pong");
public static void StartCall(int i){
if(i == 1){
fs = true;
p.run();
}else if(i == 1){
fs = false;
p.run();
}
}
public void run() {
if(fs = true){
w.setSize(getMaximumSize());
System.out.println("max");
}else if(fs = false){
w.setSize(400,400);
System.out.println("min");
}
w.setVisible(true);
System.out.println("running");
}
public void paint(Graphics g){
System.out.println("painting");
g.drawRect(111, 111, w.getWidth(), w.getHeight());
g.setColor(Color.BLUE);
}
public void draw(Graphics g,Image i,int x,int y) {
g.drawImage(i,x,y,null);
}
}