Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java Applet niin toimivaksi jokaiseen selaimeen että sen voi reloadata

kpzpt [15.08.2008 21:57:13]

#

Moi!

kahden viikon kokemus ATK alan koulutuksesta, sekin silloin jäi kesken.

nyt olisi kiinnostusta Java ohjelmointiin, hallitsen kyllä itse "ohjelmoinnin" harrastus jo '80s, mutta, Javan perus tuntemus on olematonta.
olen yrittänyt googlattuja java tutoriaaleja ja esimerkkejä ja oppinutkin paljon Javasta.

nyt olen tilanteessa jossa minun Linux Ubuntuni ( minulla ei ole Windows käyttäjärjestelmää lainkaan asennettuna )
ei suostu uudelleen lataamaan ja ajamaan Java Applettejani useammin kuin kerran,
minun Applet tuntemukseni on seuraavanlainen.

init()

new canvas()
this.add(canvas)
canvas.newbufferstrategy (2)

start()
new T_Thread ().start()

stop()
T_Thread.stop()
gameruns = false;

destroy()
super.destroy()

run()
while gameruns
{
   tässä kutsun bufferstrategyä.
}

kun käytän Firefox selaimen reload buttonia niin minun selaimeni ei kuitenkaan käynnistä Applettia enää uudestaan.
en omaa kuin tyydyttävän Suomen kielen taidon kun on tietokoneista kyse, googlesta ei paljon apuja.

olisiko teillä kenelläkään valmista Applet runkoa, jossa olisi Bufferstrategy niin toimivana että Appletin pystyy uudelleen lataamaan samaan Tabiin ??
pääsisin sitten eteenpäin Java Shakkini ja Reversini kanssa !!

Applettini löytyy seuraavasta ->

http://pelisuomi.eu/PeliSuomi/build/PeliSuomi.html

kun yrität reload buttonilla selaimesta, niin saat sitten itse virheilmoitukset consolesta ja ilmoituspalkista.

//----

kiitos,,

Laitinen [15.08.2008 22:57:06]

#

Toimiiko applettisi oikein ensimmäisellä kerralla? Koodinkaan näkeminen tuskin olisi pahitteeksi.

kpzpt [16.08.2008 01:02:11]

#

Appletti toimii oikein ensimmäisellä kerralla, ja nyt kun kokeilin Operalla
niin siinä se toimii oikein joka kerralla, mutta, tämä firefox on vielä "rikki"

minulla ei ole windows käyttöjärjestelmää koneellani ollenkaan eli en sillä
pääse arvioimaan.

Applet -> http://pelisuomi.eu/PeliSuomi/build/PeliSuomi.html

package pelisuomi;

//----------------------------------------

import java.applet.Applet;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferStrategy;

//----------------------------------------

public class PeliSuomi extends Applet implements Runnable {

    pelisuomi.Globaalit     GLBS = new pelisuomi.Globaalit ();

    pelisuomi.peli_shakki   shakki = new pelisuomi.peli_shakki ();

    boolean                 g_GAMERUNS = false;
    Canvas                  canvas;
    BufferStrategy          bstrategy;
    Thread                  T_Thread;

    //----------------------------------------
    public void init ()
    {
        System.out.println ("-----------------------------------------");
        System.out.println ("--");
        System.out.println ("-- PeliSuomi Java-Pelit (C) 08 08 2008.");
        System.out.println ("--");
        System.out.println ("-----------------------------------------\n\n");
        this.setSize ( 800,600 );

        canvas = new Canvas();

        Dimension dim = new Dimension();

        dim.width   = this.getWidth();
        dim.height  = this.getHeight();


        canvas.setPreferredSize ( dim );
        canvas.setBackground    ( new Color ( 255,255,255 ) );

        this.add ( canvas );

        canvas.createBufferStrategy(2);
        bstrategy = canvas.getBufferStrategy();


        g_GAMERUNS = true;
        System.out.println ("Applet inited.");
    }
    //----------------------------------------
    public void start ()
    {
        if ( T_Thread == null )
        {
            T_Thread = new Thread( this );
            T_Thread.start();
        }
        System.out.println ("Applet started.");
    }
    //----------------------------------------
    public void SetViewPort ( Graphics2D AWT , float w , float h , boolean hh )
    {
        float hhh = 1f;
        if ( hh == true ) hhh = (float)canvas.getWidth() / (float)canvas.getHeight();
        w = w * hhh;

        AffineTransform At = new AffineTransform();
        At.translate ( canvas.getWidth()/2,canvas.getHeight()/2 );
        At.scale     (  (float)(canvas.getWidth () / w) , (float)(canvas.getHeight() / h ) );
        AWT.setTransform(At);
    }
    //----------------------------------------
    public void run ()
    {
        System.out.println ("Applet run.");
        while ( g_GAMERUNS == true )
        {
            Graphics2D AWT = (Graphics2D)bstrategy.getDrawGraphics();

            if (!bstrategy.contentsLost())
            {

                canvas.setSize (this.getWidth(),this.getHeight() );
                canvas.setLocation(0,0);
                canvas.setBackground(new Color (255,255,255));
                /*
                AffineTransform At = new AffineTransform();
                At.translate ( this.getWidth()/2,this.getHeight()/2 );
                At.scale     ( (this.getHeight()/900f), (this.getHeight()/900f) );
                AWT.setTransform(At);
                */
                SetViewPort ( AWT , 1000 , 1000 , false );

                GLBS.drawSVG ( AWT, "Loc(-500,-500;1000,1000); Cam(0:1000,500:1250);"+GLBS.JVFStringData);


                SetViewPort ( AWT , 1000 , 1000 , true );


                //shakki.piirralauta ( AWT );
                AWT.setColor ( Color.white );
                AWT.fillRect( -400,-400,800,800 );

                for ( int aa = 0; aa < 8; ++aa )
                for ( int bb = 0; bb < 8; ++bb )
                {
                    if ( (bb + aa) == ((bb+aa)/2*2) )
                    GLBS.drawSVG ( AWT, "Loc("+(aa*100-400)+","+(bb*100-400)+";100,100); Cam(2250:2500,0:250);"+GLBS.JVFStringData);
                    //  AWT.fillRect( -400+aa*100,-400+bb*100,100,100 );
                }

                AWT.setColor ( Color.black );
                AWT.drawRect( -400,-400,800,800);

                for ( int aa=0; aa<8; ++aa )
                {
                    GLBS.drawSVG ( AWT, "Loc("+(aa*100-400)+",-300;100,100); Cam(750:1000,0:250);"+GLBS.JVFStringData);
                    GLBS.drawSVG ( AWT, "Loc("+(aa*100-400)+", 200;100,100); Cam(750:1000,250:500);"+GLBS.JVFStringData);
                }

                bstrategy.show();
            }
        }
    }
    //----------------------------------------
    public void stop ()
    {
        if ( T_Thread != null )
        {
            T_Thread.stop();
            T_Thread=null;
        }
        System.out.println ("Applet stopped.");
        g_GAMERUNS = false;
    }

    public void destroy ()
    {
        System.out.println ("Applet destroyed.");
        super.destroy ();
    }
    //----------------------------------------
}

kiitos avusta.

kpzpt [18.08.2008 03:22:08]

#

Jeh!

Tässä jo pari päivää tainnut mennä ilman vastausta.

muotoilenkin kysymykseni toiseen muotoon ja osoitan kysymykseni
heille jotka omaavat enemmän kokemusta Javasta mitä minä.

minulla on ongelmana se että Applettini eivät uudelleen lataudu selaimeen.

tarvitsen Applet rungon jossa on Applet + Canvas + Bufferstrategy, runnable.

voisiko joku rakentaa sellaisen minulle, tilanne siis on se että Applettini
jotka ohjelmoin kyllä toimivat jokaisessa selaimessa,
mutta eivät enää uudelleen lataudu ainakaan firefoxiin, koska olen Linux käyttäjä on Firefoxin toimimattomuus enemmän kuin kiusallista.

en osaa korjata ongelmaani yksin,

eli Applet runko jonka voi uudelleen ladata Firefoxissa,
Applet sisältää Applet Runnable + Canvas + Bufferstrategy (2).

//----

kiitos,,

Vastaus

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

Tietoa sivustosta