Netbeans + aplet + cookie

0

Witam,

staram się napisać prosty aplet. Po uruchomieniu w Netbeans widzę następujące okno :

user image

teraz zminimalizuje je, i powiększę ponownie, efekt :

user image

I tak też aplet wygląda na stronie :/

Kolejna sprawa. Plik TestAplet jest w katalogu classes. Wrzucam plik TestAplet.html i plik TestAplet.class na FTP i qpa, w przeglądarce dostaję error coś typu "sources not found".

Następna rzecz to jak stworzyć plik *.jar ?

Plik TestAplet.java

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JApplet;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;


public class TestAplet extends JApplet{

public Button btn;
public TextField txtfield;

    ActionListener al = new ActionListener() {
        public void actionPerformed(ActionEvent e){
            if(e.getActionCommand().equals("download"))
            {
          
                for(int i=0;i<15;i++){
                    try {
                        Thread.sleep(500);
                        txtfield.setText(Integer.toString(i));
                    } catch (InterruptedException ex) {
                        Logger.getLogger(TestAplet.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
                
            }
        }
    };

    public void init() {
    }

    public void start(){
    }

    public void stop(){
    }

    public void paint(Graphics g){
        btn = new Button("Test");
        btn.setSize(100,50);
        btn.addActionListener(al);
        btn.setActionCommand("download");
        btn.setBounds(100,110,100,20);

        txtfield = new TextField();
        txtfield.setBounds(50, 50, 100, 20);
        //txtfield.setVisible(true);

        add(btn);
        add(txtfield);
       
        g.drawString("TEKST", 100, 100);

    }
}

a w HTML :

<P>
<APPLET codebase="classes" code="TestAplet.class" width=350 height=200></APPLET>
</P>

gdy wrzucam na ftp wygląda to tak :

<P>
<APPLET code="TestAplet.class" width=350 height=200></APPLET>
</P>

Błąd jaki dostaje :

java.lang.RuntimeException: java.lang.NoClassDefFoundError: TestAplet$1
	at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: TestAplet$1
	at TestAplet.<init>(TestAplet.java:31)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at sun.plugin2.applet.Plugin2Manager$12.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Exception: java.lang.RuntimeException: java.lang.NoClassDefFoundError: TestAplet$1
0

Jeśli samemu rozstawiasz komponenty to musisz dodać:
setLayout(null);

edit:
Nie zauważyłem początkowo.
Wszystko to robisz w init nie w paint.

public void init() {
         EventQueue.invokeLater(new Runnable()
         {
            public void run()
            {
                   //tu kod 
            }
         });
    }
0

ok, dzięki, rozumiem, że to niweluje znikanie textbox'a.

Ale co zrobić, żeby mógł używać apletu na stronie ? Chciałbym żeby class było w pliku *.jar a nie tak samopas.

0

Co do błędu edytowałem wcześniejszy post w tym czasie co pisałeś.

mr.hex napisał(a)

Ale co zrobić, żeby mógł używać apletu na stronie ? Chciałbym żeby class było w pliku *.jar a nie tak samopas.

Dodajesz gdzie ma szukać klasy:
archive="jakis.jar"

0

Dzięki za pomoc - działa jak należy.

Nie bardzo chcę zakładać nowy temat, tak więc...

jak pobrać kod strony WWW w javie używając cookies ?
Co na zasadzie działania wrzuty, żeby pobrać plik potrzebne jest cookie.

Podobnie jest u mnie, gdy wchodzę na adres strony tworzone jest cookie, które, jest następnie wykorzystywane do pokazania innej podstrony.

Obecnie do pobierania kodu korzystam z :

 public String GetKod(String link) throws IOException{
        String zrodlo = "";
        URL yh = new URL(link);
        URLConnection yc = yh.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                yc.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null)
            zrodlo = zrodlo + inputLine.toString();
        in.close();

        return zrodlo;
    }

Niestety nie jest tworzone/pobierane cookie - obadałem snifferem. Stąd też zamiast kodu dostaję przekierowanie 302 :/

0

Help plz =]

1 użytkowników online, w tym zalogowanych: 0, gości: 1