Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: java:applet not initialized

jonez [13.10.2004 22:12:20]

#

Kun yritän ajaa appletviewerillä applettiani applet, ei käynnisty ja status palkkiin tulee teksti, start: applet not initialized. Class tiedosto on samassa tiedostossa kuin html filu, voiko se johtua koodista?

<html>
<applet code= "testes.class" width = "280" height="280">
</applet>
</html>

On html source, koitin katsoa apua jo java.sun.comista mutta en löytänyt mitään.

maka78 [14.10.2004 16:27:32]

#

Class tedosto on samassa tiedostossa?!? siis toi sun html-koodi näyttäis olevan ihan ok. Eli ongelma on siinä sun appletissa.

jonez [14.10.2004 16:31:42]

#

Se ei nyt mikänä maailman pisin oo niin pasteen sen nyt tähän.

import java.applet.Applet;
import java.applet.*;
import javax.swing.*;
import java.awt.*;
import java.lang.*;
import java.awt.event.*;
import java.awt.event.KeyListener;
import javax.swing.*;
import java.net.*;
import java.io.*;


public class testes extends Applet implements KeyListener {
/*
  public void update(Graphics g) {
    paint(g);
  } */

public int kentan_vaihto = 0;
public int kentanvaihto = 0;
public int piirtopinta_x = 0;
public int piirtopinta_y = 0;
public int pelaajanpaikka_x = 60;
public int pelaajanpaikka_y = 60;
public int kentan_leveys = 14;
public int kentan_korkeus = 14;
public int kentta_looppi = 0;


public int[] kentta = {1,2,1,2,1,1,2,1,2,3,1,2,1,2,1,1,2,3,2,1,1,2,1,2,1,1,2,1,2,1,1,2,1,2,1,1,2,1,2,1,1,2,1,2,1,1,2,1,2,1,2,1,2,1,1,2,1,2,3,1,2,1,2,1,1,2,3,2,1,1,2,1,2,1,1,2,1,2,1,1,2,1,2,1,1,2,1,2,1,1,2,1,2,1,1,2,1,2,};
public void keyTyped(KeyEvent ke) { }
public void keyReleased(KeyEvent ke) { }

public void init(){
addKeyListener(this);
}

Image ruoho = getImage(getCodeBase(), "ruoho.png");
Image puu = getImage(getCodeBase(), "puu.png");
Image vesi = getImage(getCodeBase(), "vesi.png");
Image pelaaja = getImage(getCodeBase(), "pelaaja.png");

public void paint(Graphics g){

while(kentta_looppi < 50){
if(kentta[kentta_looppi + kentanvaihto] == 1){
g.drawImage(ruoho, piirtopinta_x, piirtopinta_y, this);
}
if(kentta[kentta_looppi + kentanvaihto] == 2){
g.drawImage(puu, piirtopinta_x, piirtopinta_y, this);
}
if(kentta[kentta_looppi + kentanvaihto] == 3){
g.drawImage(vesi, piirtopinta_x, piirtopinta_y, this);
}
kentta_looppi++;
if(piirtopinta_x > 100){
piirtopinta_y += 20;
piirtopinta_x = 0;
}else{
piirtopinta_x += 20;
}
if(piirtopinta_y > 120){
piirtopinta_y = 0;
}
g.drawImage(pelaaja, 60, 60, this);
}


}

public void keyPressed(KeyEvent ke) {

if(ke.getKeyCode()==KeyEvent.VK_LEFT) {
if(pelaajanpaikka_x == -20){
pelaajanpaikka_x = 120;
}else{
pelaajanpaikka_x -= 20;
}
repaint();
}
if(ke.getKeyCode()==KeyEvent.VK_RIGHT) {
if(pelaajanpaikka_x == 120){
pelaajanpaikka_x = 0;
}else{
pelaajanpaikka_x += 20;
}
repaint();
}
if(ke.getKeyCode()==KeyEvent.VK_UP) {
if(pelaajanpaikka_y == -20){
pelaajanpaikka_y = 120;
}else{
pelaajanpaikka_y -= 20;
}
repaint();
}
if(ke.getKeyCode()==KeyEvent.VK_DOWN) {
if(pelaajanpaikka_y == -20){
pelaajanpaikka_y = 120;
}else{
pelaajanpaikka_y += 20;
}
repaint();
}
}
}

peran [14.10.2004 17:10:36]

#

Antaa seuraavanlaisen ajonaikaisen virheen
(Näkyy komentokehotteessa kun ajaa appletin):

java.lang.NullPointerException
        at java.applet.Applet.getCodeBase(Applet.java:106)
        at testes.<init>(testes.java:38)
        at java.lang.Class.newInstance0(Native Method)
        at java.lang.Class.newInstance(Class.java:237)
        at sun.applet.AppletPanel.createApplet(AppletPanel.java:579)
        at sun.applet.AppletPanel.runLoader(AppletPanel.java:515)
        at sun.applet.AppletPanel.run(AppletPanel.java:293)
        at java.lang.Thread.run(Thread.java:484)

Korjausehdotus:

Image ruoho = null; // Muutettu
Image puu = null;   // Muutettu
Image vesi = null;  // Muutettu
Image pelaaja = null; // Muutettu

public void init(){
// Nämä lisätään ***********************
	ruoho = getImage(getCodeBase(), "ruoho.png");
	puu = getImage(getCodeBase(), "puu.png");
	vesi = getImage(getCodeBase(), "vesi.png");
	pelaaja = getImage(getCodeBase(), "pelaaja.png");
// *****************************************
addKeyListener(this);
}

Sen jälkeen avaa appletin

Sitten pieni arvaus koodin toiminnasta pitäisiköhän lisätä seuraava:

public void paint(Graphics g){  // tämän aliohjelman alkuun
kentta_looppi=0;  // tämä lisätty
// muuten samanlainen

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta