PDA

Visualizza la versione completa : [JAVA] Errore d'esecuzione


Oiziorbaf
10-06-2004, 11:20
Ciao a tutti, ho un problema.... sto cercando di convertire una mia vecchia applet del gioco del tris (http://utenti.lycos.it/oiziorbaf1/trisp.htm) in un gioco per cellulare... in questo preciso momento il gioco "sarebbe" pronto, tranne magari quelke accorgimento, per funzionare su pc con gli adattamenti da applet a programma e cambiando da inpit da pulsante a input di tastiera! Però appena quando lo lancio mi appare il frame vuoto, solo col colore dello sfondo, e in dos quest'errore: java.lang.NullPointerException..... e in poche parole mi da errore nel metodo paint(), che io provo a cambiare con paintComponent(), ma così facendo nn mi da + errore ma si visualizza un frame vuoto..... cosa posso fare????
:ciauz:

Oiziorbaf
10-06-2004, 14:12
UP!!!
:D

Angelo1974
10-06-2004, 14:54
Posta un po' di codice; forse può esserci utile.

Oiziorbaf
10-06-2004, 15:02
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
/*
<applet code="tris" widht="500" height=500>
</applet>
*/

public class tris extends JFrame implements KeyListener{
int vett[];
Random r=new Random();
int j=1,mossa=1,x=501,y=501,v,ra;
boolean t=false;
JButton list[]=new JButton[9];
String mess="";
String mpc="";
Image cerchio,croce,vit,sco,tit;

tris(String title){
setSize(500,500);
setLocation(0,0);
setVisible(true);
Color blu=new Color(76,190,255);
setBackground(blu);
Image cerchio= Toolkit.getDefaultToolkit().createImage("cerchio.gif");
Image croce= Toolkit.getDefaultToolkit().createImage("croce.gif");
Image vit= Toolkit.getDefaultToolkit().createImage("vittoria.gif");
Image sco= Toolkit.getDefaultToolkit().createImage("sconfitta.gif");
Image tit= Toolkit.getDefaultToolkit().createImage("titolo.gif");
init();
}

init()
controllo()
mossapc()

public static void main(String args[]){
String titolo="TRIS";
tris Tris=new tris(titolo);
}
public void keyPressed(KeyEvent ke){

if ((mossa==1) | (mossa==3) | (mossa==5) | (mossa==7) | (mossa==9)){
if (ke.getKeyCode()==KeyEvent.VK_1){
mess="Hai cliccato il pulsante numero: 1";
j=j+1;
vett[0]=1;
repaint();
}

public void paint(Graphics g){
g.drawImage(tit,50,25,tit.getWidth(this),tit.getHe ight(this),this);
g.drawString(mess,100,450);
g.setColor (Color.white);
g.drawLine (200,100,200,400);
g.drawLine (300,100,300,400);
g.drawLine (100,200,400,200);
g.drawLine (100,300,400,300);
if (vett[0]==1) g.drawImage(cerchio,100,100,cerchio.getWidth(this) ,cerchio.getHeight(this),this);
if (vett[1]==1) g.drawImage(cerchio,202,100,cerchio.getWidth(this) ,cerchio.getHeight(this),this);
if (vett[2]==1) g.drawImage(cerchio,302,100,cerchio.getWidth(this) ,cerchio.getHeight(this),this);
if (vett[3]==1) g.drawImage(cerchio,100,202,cerchio.getWidth(this) ,cerchio.getHeight(this),this);
if (vett[4]==1) g.drawImage(cerchio,200,202,cerchio.getWidth(this) ,cerchio.getHeight(this),this);
if (vett[5]==1) g.drawImage(cerchio,302,202,cerchio.getWidth(this) ,cerchio.getHeight(this),this);
if (vett[6]==1) g.drawImage(cerchio,100,302,cerchio.getWidth(this) ,cerchio.getHeight(this),this);
if (vett[7]==1) g.drawImage(cerchio,202,302,cerchio.getWidth(this) ,cerchio.getHeight(this),this);
if (vett[8]==1) g.drawImage(cerchio,302,302,cerchio.getWidth(this) ,cerchio.getHeight(this),this);
if (vett[0]==2) g.drawImage(croce,100,100,croce.getWidth(this),cro ce.getHeight(this),this);
if (vett[1]==2) g.drawImage(croce,202,100,croce.getWidth(this),cro ce.getHeight(this),this);
if (vett[2]==2) g.drawImage(croce,302,100,croce.getWidth(this),cro ce.getHeight(this),this);
if (vett[3]==2) g.drawImage(croce,100,202,croce.getWidth(this),cro ce.getHeight(this),this);
if (vett[4]==2) g.drawImage(croce,200,202,croce.getWidth(this),cro ce.getHeight(this),this);
if (vett[5]==2) g.drawImage(croce,302,202,croce.getWidth(this),cro ce.getHeight(this),this);
if (vett[6]==2) g.drawImage(croce,100,302,croce.getWidth(this),cro ce.getHeight(this),this);
if (vett[7]==2) g.drawImage(croce,202,302,croce.getWidth(this),cro ce.getHeight(this),this);
if (vett[8]==2) g.drawImage(croce,302,302,croce.getWidth(this),cro ce.getHeight(this),this);
if (v==2) g.drawImage(vit,125,300,vit.getWidth(this),vit.get Height(this),this);
if (v==1) g.drawImage(sco,125,300,sco.getWidth(this),sco.get Height(this),this);
}
}


nn l'ho popstato tutto se no era troppo lungo!!! ciao

Angelo1974
10-06-2004, 15:07
Ho dato un'occhiata veloce al codice; tu valorizzi, dell'array di int, solo il primo elemento; però non vedo da nessuna parte una cosa del tipo:

int[] vet = new int[10];

potrebbe essere questo l'errore. Ho, cmq, dato solo 1 occhio veloce.
Ciao

Oiziorbaf
10-06-2004, 16:31
No, quello lo faccio in init(), l'errore è nel metodo paint()!! sìdimmelo se vuoi ti invio tutto il codice per mail così lo vedi!! ciao e grazie

Angelo1974
10-06-2004, 16:49
ok invialo; lo zippi e lo invii a angeloimm@libero.it

Oiziorbaf
10-06-2004, 16:58
ok, fatto!
:ciauz:

Oiziorbaf
10-06-2004, 18:36
Se altri oltre a Angelo sanno come risolvere il mio problema vi allego l'errore ke mi da quando la avvio!!
ciao

:ciauz:

LeleFT
10-06-2004, 18:43
Qual è la riga 295?? Posso buttarla lì: la prima del metodo paint()?


Ciao. :ciauz:

Loading