Avatar billede aslan Nybegynder
28. maj 2002 - 18:54 Der er 20 kommentarer og
1 løsning

applet

Min Applet reagere slet ikke på actions fra knaperne?
Den burde mindst at vise "test" i TextArea , men intet sker?


import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

import java.applet.Applet;


public class Test extends Applet implements ActionListener
{


        TextArea felt = new TextArea(4, 40);

        Button vis = new Button("Vis");
        Button afslut = new Button("Afslut");

        Statement    st;

        ConnectDB db = new ConnectDB( "jdbc:mysql://mysql.xxxxx/xxxx", "xxxx", "xxxx" );

        public void init()
        {
        setLayout(new BorderLayout());

        Panel p = new Panel();

        p.setLayout(new FlowLayout());

        p.add(vis);
        vis.addActionListener(this);

        p.add(afslut);
        afslut.addActionListener(this);

        p.add(felt);
        felt.setEditable(false);




        }

        public void visPoster()
        {

        try {

            String query = "SELECT * FROM board";

            st.execute(query);

            ResultSet rs = st.getResultSet();

            felt.setText("");



            while (rs.next())
            {

                  felt.append(rs.getString(1));

            }

            } catch (SQLException e)

            {

            felt.append("Databasesøgning gik galt: "+ e.getMessage());

            }

        }

            public void actionPerformed(ActionEvent e)
            {


                if(e.getSource() == vis)

                {
                felt.append("test");
                visPoster();
                }

                if( e.getSource() == afslut )
                {
                  System.exit(0);
                }

            }

}
Avatar billede soelvpil Nybegynder
28. maj 2002 - 20:38 #1
SIG MIG HAR DU OVERHOVEDET FORSØGT NOGEN AF DE TING, DER BLEV FORESLÅET SOM SVAR TIL DIT SIDSTE SPØRGSMÅL??????
Avatar billede erikjacobsen Ekspert
28. maj 2002 - 20:44 #2
Er det ikke nødvendigt at sætte

  add(p);

nederst i init()  ?

For så virker det da. Måske kan du ikke se dit "test" fordi dit textfelt
er for stort (eller størrelsen på din applet er for lille).
Avatar billede erikjacobsen Ekspert
28. maj 2002 - 20:48 #3
Ha ha. Jah, eller fordi du siger

  felt.setText("");

umiddelbart efter du har sagt

  felt.append("test2");

...godt nok inde i din visPoster()
Avatar billede aslan Nybegynder
28. maj 2002 - 20:59 #4
soelvpil ja... Hva regner du mig for?
Avatar billede aslan Nybegynder
28. maj 2002 - 21:07 #5
Ok nu virker appletten men jeg får en nullpointer exception når jeg forsøger at komme i forbindelse med database?
Avatar billede aslan Nybegynder
28. maj 2002 - 21:09 #6
Denne test virker... Her kommer jeg i forbindelse med database og får kørt min query så det er ikke der fejlen ligger?

import java.sql.*;

class Test2
{
    public static void main( String args[] ) throws SQLException
    {
        ConnectDB db = new ConnectDB( "jdbc:mysql://"xxxx", "xxxxx", "xxxx" );

        ResultSet row = db.Select( "SELECT * FROM artikler" );

        while( row.next() )
        {
            System.out.println( row.getString(1) );
        }
    }
}
Avatar billede erikjacobsen Ekspert
28. maj 2002 - 21:41 #7
Ligger mysql-en på samme domæne som appletten kommer fra?
Avatar billede aslan Nybegynder
28. maj 2002 - 23:01 #8
Det er sådan så jeg kan køre begge mine filer fra browseren
Avatar billede aslan Nybegynder
28. maj 2002 - 23:01 #9
Eller fra min egen computer
Avatar billede erikjacobsen Ekspert
28. maj 2002 - 23:07 #10
Men din SQL-server - hvilken maskiner (IP/Domæne) er den på
i forhold til der hvor din Test.class ligger?
Avatar billede aslan Nybegynder
28. maj 2002 - 23:34 #11
Det ved jeg faktisk ikke...
Avatar billede erikjacobsen Ekspert
28. maj 2002 - 23:43 #12
Betyder dit

  mysql.xxxxx

faktisk

  mysql.domæne.dk

og din side med applet ligger på

  www.domæne-dk

(som feks hos www.dht.com) så er domæner, og sikkert ip, forskellige
Avatar billede aslan Nybegynder
29. maj 2002 - 09:34 #13
Jeg er stadig ikke med hva har det med sagen og gøre? Som sagt så kan jeg få dette til at virke, så det må være en eller andet sted i appletten jeg går galt:

class Test2
{
    public static void main( String args[] ) throws SQLException
    {
        ConnectDB db = new ConnectDB( "jdbc:mysql://mysql.xxxxx/xxxx", "xxxx", "xxxx" );
        ResultSet row = db.Select( "SELECT * FROM artikler" );

        while( row.next() )
        {
            System.out.println( row.getString(1) );
        }
    }
}
Avatar billede erikjacobsen Ekspert
29. maj 2002 - 09:42 #14
Kender du til sikkerhedsrestriktioner for Applets? Jeg ved heller
ikke om det er det, der er galt, men man kan ikke fra en
Applet få lov til at gøre det samme som fra et Java-program.

Prøv at fortæl hvor tingene ligger, hvad der står får nogen af
dine xxx-er (ikke brugernavn og password) - så kan vi får undersøgt
hvad der er galt.
Avatar billede erikjacobsen Ekspert
29. maj 2002 - 09:44 #15
Hmm, du erklærer

Statement    st;

men du får da aldrig initialiseret st...
Avatar billede erikjacobsen Ekspert
29. maj 2002 - 09:46 #16
Skal du ikke kalde en metode inde i din ConnectDB klasse ?
Avatar billede aslan Nybegynder
29. maj 2002 - 10:39 #17
ConnectDB db = new ConnectDB( "jdbc:mysql://mysql.server/database", "brugernavn", "password" );
Avatar billede aslan Nybegynder
29. maj 2002 - 10:42 #18
Statement    st; skulle slet ikke være der min ConnectDB class:

import java.sql.*;

class ConnectDB
{
    private Connection con;

    ConnectDB( String url, String username, String password )
    {
        try
        {
            //Class.forName( "interbase.interclient.Driver" );
            Class.forName("org.gjt.mm.mysql.Driver");
            con = DriverManager.getConnection( url, username, password );
        }
        catch( ClassNotFoundException c )
        {
            System.out.println( "Kunne ikke finde driveren. \n"+c );
        }
        catch( SQLException cs )
        {
            System.out.println( "Kunne ikke forbinde til databasen. \n"+cs );
        }
    }

    public ResultSet Select( String SQL )
    {
        ResultSet rs = null;

        try
        {
            Statement s = con.createStatement();
            rs = s.executeQuery( SQL );
        }
        catch( SQLException sc )
        {
            System.out.println( "Fejl i QUERY. \n"+sc );
        }

        return rs;
    }

    public void Insert( String SQL )
    {
        try
        {
            Statement s = con.createStatement();
            s.executeUpdate( SQL );
        }
        catch( SQLException sc )
        {
            System.out.println( "Fejl i QUERY. \n"+sc );
        }
    }
}
Avatar billede aslan Nybegynder
29. maj 2002 - 11:40 #19
Fandt noget her:


Praktiske forhold: Java-appletterDet fungerer p a samme m ade som ved Java-programmer.Men arkivetmm.mysql-2.0.7-bin.jarskal liggeudpakketp a webserveren (ikke p a klientmaskinen).Det udpakkedemm.mysql-2.0.7-bin-arkiv skal ligge i det katalog der indeholder applettens .class fil.Den udpakkede version ligger i katalogetS:\sysadm\mm.mysql-2.0.7. Kopier hele katalogetorgtilden katalog, hvor applettens .class fil ligger.Databaseserverenskalkøre p a samme maskine som webserveren.En applet m a nemlig kun kommunikere med den maskine som appletten kommer fra (af sikkerhedshensyn).
Avatar billede aslan Nybegynder
30. maj 2002 - 11:12 #20
kan stadig ikke få det til at virke
Avatar billede aslan Nybegynder
30. maj 2002 - 20:18 #21
nå men....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester