08. september 2001 - 17:14Der er
16 kommentarer og 1 løsning
tilføje noget til en liste i awt
Hvad er galt med dette billede??
sql classen fungerer fint som den skal... har testet den.. Fejlen sker i GUI classen når jeg beder listen om at vi indholdet i min db. Man kan måske ikek bare gøre sådan,s om jeg har gjort og smide det hele ind i listen uden viderer?? sql og GUI ligger i hver sin class fil
MVH Rune
import java.sql.*;
class sql { Connection con; Statement stmt; ResultSet svar; public void Opret(String url, String TabelInfo) { try { con = DriverManager.getConnection(url, \"\",\"\");//Tomme felter er til login og pass for db stmt = con.createStatement(); stmt.executeUpdate(TabelInfo); stmt.close(); con.close(); } catch(SQLException e) { System.out.println(\"SQL Fejl: \" + e.getMessage()); } } public void Opdater(String url, String TabelInfo) { try { con = DriverManager.getConnection(url, \"\",\"\");//Tomme felter er til login og pass for db stmt = con.createStatement(); stmt.executeUpdate(TabelInfo); stmt.close(); con.close(); } catch(SQLException e) { System.out.println(\"SQL Fejl: \" + e.getMessage()); } }
public void Udtag(String url, String TabelInfo) { String prod; try { con = DriverManager.getConnection(url, \"\",\"\");//Tomme felter er til login og pass for db stmt = con.createStatement(); svar = stmt.executeQuery(TabelInfo); while(svar.next()) { prod = svar.getString(\"navn\"); //kolonne label System.out.println(prod); } stmt.close(); con.close(); } catch(SQLException e) { System.out.println(\"SQL Fejl: \" + e.getMessage()); } } }
public class GUI extends Applet implements ActionListener, ItemListener { sql DB = new sql(); public String URL = new String(\"jdbc:odbc:buy\"); public String hentData = new String(\"select navn from produkter\"); private List l = new List(DB.Udtag(URL, hentData); private Button b = new Button(\"Order CD\");
public static void main(String arg[]) { try { Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\"); } catch(ClassNotFoundException e) {System.out.println(\"Kan Ikke Finde Driveren\");}
new GUI(); }
public void actionPerformed(java.awt.event.ActionEvent p1) { }
public void itemStateChanged(java.awt.event.ItemEvent p1) { }
}
fejl meddelse:
GUI.java [41:1] \';\' expected. } ^ GUI.java [5:1] class GUI must be declared abstract. It does not define public abstract void actionPerformed(ActionEvent) from class java.awt.event.ActionListener public class GUI extends Applet implements ActionListener, ItemListener ^ 2 errors
Denne linie: private List l = new List(DB.Udtag(URL, hentData); Fejler selvfølgelig fordi der mangler en slut parentes.
Derudover kan du ikke oprette en liste sådan, men du skal gøre således: private List l = new List(); og i din constructor eller andet sted: l.add(aStringWhichShouldAppearIntTheList);
Din metode DB.udtag(x,y) returnerer void, og det kan derfor ikke addes til en list. Prøv at lave udtag om til en metode, som returnerer f.eks. et String array, og hæld det ind.
Den vil bare ikke gøre noget for Udtag er en void. Klart.
hvad skal denne metode så ændres til for at det virker. public void Udtag(String url, String TabelInfo) { String prod; try { con = DriverManager.getConnection(url, \"\",\"\");//Tomme felter er til login og pass for db stmt = con.createStatement(); svar = stmt.executeQuery(TabelInfo); while(svar.next()) { prod = svar.getString(\"navn\"); //kolonne label } stmt.close(); con.close(); } catch(SQLException e) { System.out.println(\"SQL Fejl: \" + e.getMessage()); } }
Jeg vil gerne kunne returnere fra den, men hvordan? jeg er stuck her. Har lige taget java op igen. det er derfor det ikké rigtig køre for mig. Håber en kan hjælpe mig her :)
så er ham den doske tilbage... Fuck jeg er snart træt af det her.. har lige fået løst et problem også kommer der et nyt. Der er Vildt stor forskel på compileren i J++ og forte åbenbart. den her fejl kommer ikke J++: GUI.java [15:1] Ambiguous class name \'List\' private List l = new List(); Jeg se at fejlen ligger i listen, men hvordan retter man den? kan ikke finde noget om den nogen steder..At all. Hvis i vil have den nye kode må i lige sige til.
Dine import giver dig mere end en klasse, som hedder List().
Du kan udgå det ved at gøre linie ret eksplicit:
private java.awt.List l = new java.awt.List();
Der er tilsyneladende også en anden pakke et sted, som indeholder en klasse List, og så kan compileren ikke bestemme hvad for en, den skal bruge, derfor.
OK.. det er da meget godt... hehe.. så siger den bare at jeg skal recompile den -deprecated for at få flere detejler om hvorfor den ikke bliver compilet, når man gør det på den måde. Hmm... øv... hmmm... java.util indeholder da ikke nogen List(); eller gør den?? hmmm
Java util indeholder et interface, som hedder List :-)
deprecated har ikke noget med det at gøre. Deprecation er fordi du bruger en metode, hvor der findes bedre alternativer idag, eks. En Frame har en metode, der hedder show(); Den er deprecated til fordel for en metode, der hedder setVisible(true);
pis osse... der er ikke andet en probs... hvordan undgår man det, at java ikke bruger et forkert element? Jeg skal nemlig bruge Vector elementet.. helst.. Det er ikke sådan at gå fra consol progs til JFC/applets progs... synes ikek jeg havde de samme problemer i consol progs.
Jo, hvis du compiler med -deprecation, vil den give dig en liste over de metoder, du anvender, som er deprecated. Så slår du op i API dokumentation under de respektive metoder, og opdager, at der står at den er deprecated, og hvilket alternativ man bør bruge.
ok... nice... nu skla jeg har bare driveren til java odbc i winxp til at virke...
Synes godt om
Ny brugerNybegynder
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.