19. januar 2005 - 16:16
Der er
74 kommentarer
hvorfor udskriver denne funktion intet
jeg har lavet en funktion i en klasse der skal udkrive indholdet af en tabel til en string og returne den public String getkursusarbejde() throws Exception { try { String out=""; rs = stmt.executeQuery("select titel, nr from kursus "); String titel=""; int nr=0; while(rs.next()) { titel = rs.getString("titel"); nr = rs.getInt("nr"); out = titel+ " "+nr; } } catch(Exception as) { System.out.println(as.getMessage()); } return out; }
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
19. januar 2005 - 16:20
#1
kan ikke lige umiddelbart se noget.. prøv at køre denne: public String getkursusarbejde() throws Exception { try { String out=""; rs = stmt.executeQuery("select titel, nr from kursus"); String titel=""; int nr=0; while(rs.next()) { titel = rs.getString("titel"); nr = rs.getInt("nr"); } out = titel+ " "+nr; System.out.println(out); ///test } catch(Exception as) { System.out.println(as.getMessage()); } return out; }
19. januar 2005 - 16:31
#2
Nej det skriver ikke en gang System.out.println(out); ud i promten i mit IDE værktøj
19. januar 2005 - 16:33
#3
Får du nogen fejl ?? Indeholder dit ResultSet data ?? do{ titel = rs.getString("titel"); nr = rs.getInt("nr"); out += titel+ " "+nr; } while(rs.next())
19. januar 2005 - 16:34
#4
hmm.. så er der nok noget galt med din sql eller din forbindelse til databasen..
19. januar 2005 - 16:42
#5
nej det virker helt finy for jeg kan sagtens ligge ting op i databasen
19. januar 2005 - 16:44
#6
Hvad siger udskriver denne ?? rs = stmt.executeQuery("select titel, nr from kursus"); rs.last(); System.out.println("Række " + rs.getRow());
19. januar 2005 - 17:09
#7
carsten den udskriver intet men jeg lavede en main klasse der ser sådanne her ud
package mypackage2;
import java.sql.*;
public class getResualt
{
public static void main(String[] args) throws Exception
{
Statement stmt;
ResultSet rs;
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("driver installeret");
System.out.println("forbindelse er oprettet");
Connection forb = DriverManager.getConnection("jdbc:
mysql:///4k" ,"suer","password");
stmt = forb.createStatement();
rs = stmt.executeQuery("select titel, nr from kursus ");
String titel="";
int nr=0;
while(rs.next())
{
titel = rs.getString("titel");
nr = rs.getInt("nr");
System.out.println(titel+ " "+nr);
}
}
catch(Exception as)
{
System.out.println(as.getMessage());
}
}
}
og den udskriver helt fint
19. januar 2005 - 17:36
#8
så er der ingen data i dit resultSet
Prøv lige at fjerne den ene skråstreg, sådan "jdbc:
mysql://4k" ,"suer","password"
19. januar 2005 - 17:43
#9
kan det ikke være at du mangler "stmt = forb.createStatement();" ?
19. januar 2005 - 17:44
#10
evt. mellem disse linier: String out=""; rs = stmt.executeQuery("select titel, nr from kursus");
19. januar 2005 - 17:49
#11
Iøvrigt bør du lave din try/catch lidt bedre
try
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("driver installeret");
System.out.println("forbindelse er oprettet");
Connection forb = DriverManager.getConnection("jdbc:
mysql:///4k" ,"suer","password");
stmt = forb.createStatement();
rs = stmt.executeQuery("select titel, nr from kursus ");
String titel="";
int nr=0;
while(rs.next())
{
titel = rs.getString("titel");
nr = rs.getInt("nr");
System.out.println(titel+ " "+nr);
}
}
catch(ClassNotFoundException as){
as.printStackTrace();
}
catch(java.sql.SQLException sq){
sq.printStackTrace();
}
19. januar 2005 - 18:18
#12
carsten som jeg skrev så virker main metoden helt fint så det er ikke der fejlen ligger lavede den bare for at teste om jeg kunne hente noget ud fra databaseb
19. januar 2005 - 18:29
#13
Hvis din main virker - er der jo kun 2 muligheder tilbage 1. kursustabellen er tom ! 2. Eller din main virker alligevel ikke !
19. januar 2005 - 18:40
#14
til carsten ' 1. kursus tabellen er ikke tom 2. og min virker fint da der kommer en print af tabellen det er denne her funktion der skal hente ud fra den samme tabel der ikke udskriver noget public String getkursusarbejde() throws Exception { try { String out=""; rs = stmt.executeQuery("select titel, nr from kursus "); String titel=""; int nr=0; while(rs.next()) { titel = rs.getString("titel"); nr = rs.getInt("nr"); out = titel+ " "+nr; } } catch(Exception as) { System.out.println(as.getMessage()); } return out; } der ikke udkriver noget, det skal lige nævnes at klassen hvor metoden bliver erklæret i arver fra en super klasse der opretter forbindelsen til databasen og er klære Statement og ResulSet
19. januar 2005 - 19:46
#15
Så får du sandsynligvis ikke initieret din superklasse Kan du poste din superklasse, samt måden hvorpå du initierer den og metodekaldet getkursusarbejde()
19. januar 2005 - 19:54
#16
her er min super klasse
package mypackage1;
import java.sql.*;
public class database
{
Statement stmt;
ResultSet rs;
public database() throws Exception
{
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection forb = DriverManager.getConnection("jdbc:
mysql:///4k" ,"user","password");
stmt = forb.createStatement();
}
catch(Exception as)
{
as.printStackTrace();
}
}
}
her er klassen der skal oprettet et kursus arbejde og hente det ud igen
package mypackage1;
import java.sql.SQLException;
import java.util.ArrayList;
public class kursusArbejde extends database
{
protected String titel;
protected int nr;
protected int stid;
String out="";
public kursusArbejde(String title, int nr) throws Exception
{
try
{
this.titel = title;
this.nr = nr;
stmt.executeUpdate("insert into kursus values(NULL,'"+titel+"','"+nr+"',NULL)");
}
catch(Exception as)
{
as.printStackTrace();
}
}
public kursusArbejde() throws Exception
{
}
public String getkursusarbejde() throws Exception
{
try
{
String out="";
rs = stmt.executeQuery("select titel, nr from kursus ");
rs.last();
System.out.println("Række " + rs.getRow());
String titel="";
int nr=0;
do
{
titel = rs.getString("titel");
nr = rs.getInt("nr");
out = titel+ " "+nr;
return out;
}
while(rs.next());
}
catch(SQLException ae)
{
ae.printStackTrace();
}
return null;
}
}
Her er button metom i appleten der skal aktivere getkursusarbejde metoden
private void jButton3_actionPerformed(ActionEvent e)
{
try
{
String get="";
get= ka2.getkursusarbejde();
jTextArea3.setText(get);
}
catch(Exception as)
{
jTextArea3.setText(as.getLocalizedMessage());
}
}
19. januar 2005 - 21:16
#17
Hmm - kan ikke lige se problemet, det er vist mere en opgave for Arne V. Teoretisk burde det kunne fungere. Eksekveres getkursusarbejde() ???
19. januar 2005 - 21:30
#18
Et par små bemærkninger:
do
{
...
}
while(rs.next());
skal være:
while(rs.next())
{
...
}
da rs.next() skal kaldes inden første rs.getXxxx().
Connection forb = DriverManager.getConnection("jdbc:
mysql:///4k" ,"user","password");
bør være:
forb = DriverManager.getConnection("jdbc:
mysql:///4k" ,"user","password");
med Connection forb som instans variabel, da den jo skal beholdes efter
constructor er kaldt.
19. januar 2005 - 21:32
#19
Og while(rs.next()) { titel = rs.getString("titel"); nr = rs.getInt("nr"); out = titel+ " "+nr; return out; } bør strengt taget være: if(rs.next()) { titel = rs.getString("titel"); nr = rs.getInt("nr"); out = titel+ " "+nr; return out; } da der jo aldrig er mere end 1 gennemløb p.g.a. return
19. januar 2005 - 21:47
#20
Selvfølgelig - elementært !! Men at jeg ikke så denne: Connection forb, det fatter jeg bare ikke. Udfra thomaskleist kommentarer synes jeg bare det virker som om getkursusarbejde() ikke eksekveres, men.....
19. januar 2005 - 21:53
#21
Det er ikke sikkert at det er dem som er problemet. Med hensyn til Connection så bør stmt jo faktisk holde en reference til form. Men det er helt klart pænest med forb som instans variabel.
19. januar 2005 - 22:28
#22
Ellers mange gode forslag og jeg har siddet med det i 9 timer men stadigvæk sker der bare intet ingen fejl meldinger eller andre sjove ting
19. januar 2005 - 22:32
#23
Det er en applet ? Tester du den i browser ? Hvis ja - har du så checket for fejl i Java Console ?
19. januar 2005 - 22:42
#24
det er en applet og nej jeg køre den ikke i min applet i en browser jeg bruger den der ligger i jdeveloper, eller retter sagt den jdeveloper finder nede i java/bin mappen.
20. januar 2005 - 12:37
#25
Har du prøvet at teste appletten i en browser ?
20. januar 2005 - 21:37
#26
Det kunne være interessant at prøve det. Og ikke mindst at checke Java Console for fejl !
20. januar 2005 - 21:41
#27
jeg har lavet applet om til en frame istedet for så den ikke er browser afhængig og så har jeg lavet getKursusArbejde metodden om til sådanne en her public ArrayList getkursusarbejde() throws Exception { ArrayList list = new ArrayList(); String out=""; String titel =""; int nr=0; rs = stmt.executeQuery("select titel , nr from kursus;"); while(rs.next()) { kursusArbejde ka = new kursusArbejde(rs.getString("titel"),rs.getInt("nr")); list.add(ka); } return list; } Så har jeg lavet button metoden sådan her: private void jButton4_actionPerformed(ActionEvent e) { String out=""; try { for (int i =0 ;i<ka.getkursusarbejde().size() ; ) { out =(String) ka.getkursusarbejde().get(i); } jTextArea1.setText(out); } catch(Exception as) { jTextArea1.setText(as.getMessage()); } så var meninge at når jeg trykket på kanppen i framen så ville for løkken køre og hvad der var på hver index i arraylisten vil blive kastet ud til en string men det virker heller ikke
20. januar 2005 - 21:45
#28
Ingen exceptions ? Bliver jButton4_actionPerformed overhovedet kaldt ?
20. januar 2005 - 21:47
#29
Hov !!!! Enten kommer der en exception eller så kaldes den metode ikke. Fordi du forsøger at caste fra en kursusArbejde til en String !
20. januar 2005 - 21:48
#30
Må vi se der hvor du tilføjer action listener og selve action listeneren ?
20. januar 2005 - 23:00
#31
ja her er hele klassen package mypackage1; import java.awt.Color; import java.util.ArrayList; import javax.swing.JFrame; import java.awt.Dimension; import java.awt.SystemColor; import javax.swing.JTabbedPane; import java.awt.Rectangle; import javax.swing.JPanel; import javax.swing.JLabel; import java.awt.Font; import javax.swing.JTextField; import javax.swing.BorderFactory; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JTextArea; public class opret extends JFrame { private JTabbedPane jTabbedPane1 = new JTabbedPane(); private JPanel Fornavn = new JPanel(); private JPanel jPanel2 = new JPanel(); private JLabel jLabel1 = new JLabel(); private JLabel jLabel2 = new JLabel(); private JTextField jTextField1 = new JTextField(); private JTextField jTextField2 = new JTextField(); private JButton jButton1 = new JButton(); private JPanel jPanel1 = new JPanel(); private JPanel jPanel3 = new JPanel(); private JTextField jTextField3 = new JTextField(); private JTextField jTextField4 = new JTextField(); private JLabel jLabel3 = new JLabel(); private JLabel jLabel4 = new JLabel(); private JButton jButton2 = new JButton(); private student st; private kursusArbejde ka; private JLabel jLabel5 = new JLabel(); private JLabel jLabel6 = new JLabel(); private JButton jButton3 = new JButton(); private JTextArea jTextArea1 = new JTextArea(); private database db; private JButton jButton4 = new JButton(); public opret() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.getContentPane().setLayout(null); this.setSize(new Dimension(400, 300)); this.setTitle("Opret Kursus student"); this.setBackground(SystemColor.desktop); jTabbedPane1.setBounds(new Rectangle(20, 20, 325, 225)); jTabbedPane1.setBackground(SystemColor.info); Fornavn.setBackground(new Color(71, 151, 93)); Fornavn.setLayout(null); jPanel2.setBackground(new Color(71, 151, 93)); jPanel2.setLayout(null); jLabel1.setText("Fornavn"); jLabel1.setBounds(new Rectangle(15, 65, 50, 20)); jLabel1.setFont(new Font("Verdana", 0, 11)); jLabel2.setText("Efternavn"); jLabel2.setBounds(new Rectangle(15, 110, 55, 20)); jTextField1.setBounds(new Rectangle(80, 65, 175, 20)); jTextField1.setFont(new Font("Verdana", 0, 11)); jTextField1.setBorder(BorderFactory.createLineBorder(SystemColor.info, 1)); jTextField2.setBounds(new Rectangle(80, 110, 175, 20)); jTextField2.setBorder(BorderFactory.createLineBorder(SystemColor.info, 1)); jTextField2.setFont(new Font("Verdana", 0, 11)); jTextField2.setToolTipText("null"); jButton1.setText("Opret"); jButton1.setBounds(new Rectangle(100, 135, 110, 20)); jButton1.setBackground(SystemColor.desktop); jButton1.setBorder(BorderFactory.createLineBorder(SystemColor.desktop, 1)); jButton1.setFont(new Font("Verdana", 0, 11)); jButton1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jButton1_actionPerformed(e); } }); jPanel1.setBackground(new Color(71, 151, 93)); jPanel3.setBackground(new Color(71, 151, 93)); jPanel3.setLayout(null); jTextField3.setBounds(new Rectangle(80, 65, 175, 20)); jTextField3.setBorder(BorderFactory.createLineBorder(SystemColor.info, 1)); jTextField3.setFont(new Font("Verdana", 0, 11)); jTextField4.setBounds(new Rectangle(80, 110, 175, 20)); jTextField4.setFont(new Font("Verdana", 0, 11)); jTextField4.setBorder(BorderFactory.createLineBorder(SystemColor.info, 1)); jLabel3.setText("Titel"); jLabel3.setBounds(new Rectangle(20, 65, 50, 20)); jLabel3.setFont(new Font("Verdana", 0, 11)); jLabel4.setText("Nr"); jLabel4.setBounds(new Rectangle(25, 110, 25, 20)); jLabel4.setFont(new Font("Verdana", 0, 11)); jButton2.setText("Opret"); jButton2.setBounds(new Rectangle(100, 135, 110, 20)); jButton2.setBackground(SystemColor.desktop); jButton2.setBorder(BorderFactory.createLineBorder(SystemColor.desktop, 1)); jButton2.setToolTipText("null"); jButton2.setFont(new Font("Verdana", 0, 11)); jButton2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jButton2_actionPerformed(e); } }); jLabel5.setBounds(new Rectangle(5, 155, 310, 40)); jLabel6.setBounds(new Rectangle(5, 155, 310, 40)); jTextArea1.setText("jTextArea1"); jTextArea1.setBounds(new Rectangle(40, 10, 225, 145)); jButton4.setText("jButton4"); jButton4.setBounds(new Rectangle(100, 160, 100, 25)); jButton4.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { jButton4_actionPerformed(e); } }); Fornavn.add(jLabel5, null); Fornavn.add(jButton1, null); Fornavn.add(jTextField2, null); Fornavn.add(jTextField1, null); Fornavn.add(jLabel2, null); Fornavn.add(jLabel1, null); jTabbedPane1.addTab("Student", Fornavn); jTabbedPane1.addTab("KA", jPanel2); jPanel2.add(jLabel6, null); jPanel2.add(jButton2, null); jPanel2.add(jLabel4, null); jPanel2.add(jLabel3, null); jPanel2.add(jTextField4, null); jPanel2.add(jTextField3, null); jTabbedPane1.addTab("Alle Studerne", jPanel1); jPanel3.add(jButton4, null); jPanel3.add(jTextArea1, null); jPanel3.add(jButton3, null); jTabbedPane1.addTab("alle KA", jPanel3); this.getContentPane().add(jTabbedPane1, null); } private void jButton1_actionPerformed(ActionEvent e) { String fornavn = jTextField1.getText(); String efternavn =jTextField2.getText(); try { st = new student(fornavn,efternavn); } catch(Exception as) { jLabel3.setText(as.getMessage()); } } private void jButton2_actionPerformed(ActionEvent e) { String titel = jTextField3.getText(); int nr = Integer.parseInt(jTextField4.getText()); try { ka = new kursusArbejde(titel,nr); } catch(Exception as) { jLabel6.setText(as.getLocalizedMessage()); } } private void jButton4_actionPerformed(ActionEvent e) { String out=""; try { for (int i =0 ;i<ka.getkursusarbejde().size() ; ) { out =(String) ka.getkursusarbejde().get(i); } jTextArea1.setText(out); } catch(Exception as) { jTextArea1.setText(as.getMessage()); } } } og lige en ting jeg forsøger at catste et index af arraylisten til en string ikke hele arraylisten da det ikke kan lade sige gøre
20. januar 2005 - 23:26
#32
out =(String) ka.getkursusarbejde().get(i); bør som sagt give en class cast exception
20. januar 2005 - 23:27
#33
for (int i =0 ;i<ka.getkursusarbejde().size() ; ) { out =(String) ka.getkursusarbejde().get(i); } var nok bedre som: ArrayList al = ka.getkursusarbejde(); for (int i =0 ;i<al.size() ; ) { out =(String) al.get(i); } så den kun blev kaldt en gang
20. januar 2005 - 23:29
#34
Hvis der ikke bliver kliket på button 2 før button 4 så er ka null og du bør få en null pointer exception.
20. januar 2005 - 23:32
#35
Jeg vil foreslå at du enten debugger programmet med din IDE's debugger. Eller at du sætter et antal: JOptionPane.showMessageDialog(null, "Nu er jeg lige før/efter X"); ind i koden så du kan se hvad der sker. Kommer du ind i jButton4_actionPerformed ? Kommer du ind i getkursusarbejde ? Hvor mange gange kommer du ind i while løkken ?
20. januar 2005 - 23:46
#36
Jeg tænker på om JtextArea1.setText overhovede ligger det rigtige sted, for hvis jeg bare skriver en helt normal string setText metoden så kommer der intet i Jtextfield
28. januar 2005 - 18:55
#37
Har efter lang tid debugging fundet ud af at denne her funktion public ArrayList getkursusarbejde() throws Exception { ArrayList list = new ArrayList(); String out=""; String titel =""; int nr=0; rs = stmt.executeQuery("select titel , nr from kursus;"); while(rs.next()) { kursusArbejde ka = new kursusArbejde(rs.getString("titel"),rs.getInt("nr")); list.add(ka); } return list; } ikke liggger noget som helst ind i arraylisten er der nogle der kan fortælle hvorfor
28. januar 2005 - 18:59
#38
rs må være tom. Har du prøvet while(rs.next()) { System.out.println(rs.getString(1)); kursusArbejde ka = new kursusArbejde(rs.getString("titel"),rs.getInt("nr")); list.add(ka); } Og se om der bliver skrevet noget ud
28. januar 2005 - 19:04
#39
Hov - du har et semikolon efter kursus rs = stmt.executeQuery("select titel , nr from kursus;"); ret til rs = stmt.executeQuery("select titel , nr from kursus");
28. januar 2005 - 19:14
#40
Hvad siger den, er på vej ud af døren ?
28. januar 2005 - 21:39
#41
Arraylisten er tom
28. januar 2005 - 21:53
#42
Ja - vi ved godt din ArrayList er tom, men hvad med dit ResultSet ?? Har du prøvet min kom: 28/01-2005 18:59:59 eller System.out.println("while løkke starter"); while(rs.next()) { System.out.println(rs.getString(1)); kursusArbejde ka = new kursusArbejde(rs.getString("titel"),rs.getInt("nr")); list.add(ka); } System.out.println("while løkke afsluttet"); Udskrives ovenstående ?????????????
28. januar 2005 - 23:06
#43
der ligger en fejl i driveren til mysql databasen og rs.getString udskriver intet
28. januar 2005 - 23:46
#44
Sorry den lange svartid - kogte lige lidt TV.
Har du prøvet at give den metode en omgang dobbeltkonfekt for at udelukke at forb og stmt ikke er null.
Hvad siger nedestående.
public ArrayList getkursusarbejde() throws Exception
{
ArrayList list = new ArrayList();
String out="";
String titel ="";
int nr=0;
try{
forb = DriverManager.getConnection("jdbc:
mysql:///4k" ,"user","password");
stmt = forb.createStatement();
}
catch(Exception as){
as.printStackTrace();
}
rs = stmt.executeQuery("select titel , nr from kursus;");
System.out.println("while løkke starter");
while(rs.next())
{ System.out.println(rs.getString(1));
kursusArbejde ka = new kursusArbejde(rs.getString("titel"),rs.getInt("nr"));
list.add(ka);
}
System.out.println("while løkke afsluttet");
return list;
}
28. januar 2005 - 23:48
#45
hvis forb eller stmt er null, så skulle vi få en NullPointerException
28. januar 2005 - 23:48
#46
Jeg tvivler på at der er fejl i driveren, med mindre du får fejl udskrevet Vender tilbage i morgen.
28. januar 2005 - 23:50
#47
Jeg undrer mig lidt over jdbc:
mysql:///4k hvor jeg synes at der burde stå f.eks.
jdbc:
mysql://localhost/4k Og carsten har helt ret i at normalt afslutter man ikke SQL i JDBC med semikolon
29. januar 2005 - 10:36
#48
hvis jeg skriver getDriver parameterene på andre måder får jeg java.lang No suiteble driver
29. januar 2005 - 10:50
#49
M.h.t skråstregen er jeg enig med Arne, som jeg også påpegede 19/01-2005 17:36:54
28/01-2005 23:48:10 - enig
Prøv
Class.forName("com.mysql.jdbc.Driver").newInstance();
forb = DriverManager.getConnection("jdbc:
mysql://4k" ,"user","password");
stmt = forb.createStatement();
Det SKAL simpelthen virke !!
29. januar 2005 - 10:57
#50
"java.lang No suiteble driver" er MySQL JDBC driver jar filen i classpath ?
29. januar 2005 - 11:06
#51
Så vidt jeg husker kan han indsætte data i tabellen, men.......
Hvad med den udvidede version
forb = DriverManager.getConnection("jdbc:
mysql://localhost:3306/4k" ,"user","password");
29. januar 2005 - 11:20
#52
jeg kan godt ligge data ind men ikke hente ud
29. januar 2005 - 11:25
#53
Har du prøvet de senest foreslået rettelser?
hvis de ikke virker og jar filen er i classpath - står jeg af.
Class.forName("com.mysql.jdbc.Driver").newInstance();
forb = DriverManager.getConnection("jdbc:
mysql://localhost:3306/4k" ,"user","password");
stmt = forb.createStatement();
29. januar 2005 - 12:03
#54
ja det har jeg sidder nu med det og ´får jeg null når jeg prøver at kalde metoden getkursusarbejde
29. januar 2005 - 12:06
#55
Vi skal se hele fejlen, alle linier fejlkode, om så der er flere hundrede - post dem her
29. januar 2005 - 12:09
#56
ava.lang.NullPointerException at mypackage1.opret.jButton4_actionPerformed(opret.java:224) at mypackage1.opret.access$6000371(opret.java:21) at mypackage1.opret$4.actionPerformed(opret.java:156) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java) at java.awt.Component.dispatchEvent(Component.java) at java.awt.EventQueue.dispatchEvent(EventQueue.java:458) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
29. januar 2005 - 12:10
#57
private void jButton4_actionPerformed(ActionEvent e) { String vis=null; try { alist= ka. getkursusarbejde(); for (int i=0 ;i<=alist.size() ;i++ ) { vis=(String)alist.get(i); jTextArea1.setText(vis); } } catch(Exception as) { as.printStackTrace(); } }
29. januar 2005 - 12:38
#58
Ved snart ikke om jeg kan hjælpe, men prøv at lave din getkursusarbejde() om så den ser sådan ud (copy/paste) og så håndter fejlene udfra det, nu skulle du ihvertfald kunne se hvor de opstår - vender ikke tilbage før i morgen.
public ArrayList getkursusarbejde(){
ArrayList list = new ArrayList();
String out="";
String titel ="";
int nr=0;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
forb = DriverManager.getConnection("jdbc:
mysql://4k" ,"user","password");
stmt = forb.createStatement();
rs = stmt.executeQuery("select titel , nr from kursus;");
System.out.println("while løkke starter");
while(rs.next())
{ System.out.println(rs.getString(1));
kursusArbejde ka = new kursusArbejde(rs.getString("titel"),rs.getInt("nr"));
list.add(ka);
}
System.out.println("while løkke afsluttet");
return list;
}
catch (ClassNotFoundException c){
System.out.println("ClassNotFoundException HER");
c.printStackTrace();
}
catch (InstantiationException i){
System.out.println("InstantiationException HER ");
i.printStackTrace();
}
catch (SQLException s){
System.out.println("SQLException HER ");
s.printStackTrace();
}
catch (IllegalAccessException iae){
System.out.println("IllegalAccessException HER ");
iae.printStackTrace();
}
}
29. januar 2005 - 12:39
#59
Hov - rettelse
public ArrayList getkursusarbejde(){
ArrayList list = new ArrayList();
String out="";
String titel ="";
int nr=0;
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
forb = DriverManager.getConnection("jdbc:
mysql://4k" ,"user","password");
stmt = forb.createStatement();
rs = stmt.executeQuery("select titel , nr from kursus;");
System.out.println("while løkke starter");
while(rs.next())
{ System.out.println(rs.getString(1));
kursusArbejde ka = new kursusArbejde(rs.getString("titel"),rs.getInt("nr"));
list.add(ka);
}
System.out.println("while løkke afsluttet");
return list;
}
catch (ClassNotFoundException c){
System.out.println("ClassNotFoundException HER");
c.printStackTrace();
}
catch (InstantiationException i){
System.out.println("InstantiationException HER ");
i.printStackTrace();
}
catch (SQLException s){
System.out.println("SQLException HER ");
s.printStackTrace();
}
catch (IllegalAccessException iae){
System.out.println("IllegalAccessException HER ");
iae.printStackTrace();
}
return list;
}
29. januar 2005 - 13:43
#60
Desværre carsten den kommer med samme fejl smøre som før
30. januar 2005 - 11:43
#61
hmm - samme fejl smøre, er det lig din kom: 29/01-2005 12:09:32 ?? Der er vist kun en mulighed tilbage, zip samtlige filer og mail dem til mig, så kigger jeg på det i løbet af dagen. Mail: freemail[snabelA]events.dk erstat [snabelA] med @
30. januar 2005 - 15:03
#62
hej carsten jeg tror jeg har løsningen på problemet har fået den fået til at fylde arraylisten op med objekter af kursus arbejder. grunden var at kursusarbejde ikke blev instantiseret i frame klassen og, Så jeg har lavet en default contructor i kursus klassen. som jeg så kan oprettet en objekt reference i jbint() i frame klassen. så nu er det bare driveren der driller.
30. januar 2005 - 16:10
#63
nu får jeg denne her fejl Communications link failure due to underlying exception: ** BEGIN NESTED EXCEPTION ** java.lang.NullPointerException STACKTRACE: java.lang.NullPointerException at com.mysql.jdbc.Util.newCrypt(Util.java:166) at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1188) at com.mysql.jdbc.Connection.createNewIO(Connection.java:1702) at com.mysql.jdbc.Connection.<init>(Connection.java:405) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:268) at java.sql.DriverManager.getConnection(DriverManager.java:512) at java.sql.DriverManager.getConnection(DriverManager.java) at mypackage3.dbforb.<init>(dbforb.java:16) at mypackage3.telefonbogObj.<init>(telefonbogObj.java:17) at mypackage3.telefonbogObj.vislist(telefonbogObj.java:49) at mypackage3.telefonbog.jButton2_actionPerformed(telefonbog.java:237) at mypackage3.telefonbog.access$6000271(telefonbog.java:25) at mypackage3.telefonbog$3.actionPerformed(telefonbog.java:174) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java) at java.awt.Component.dispatchEvent(Component.java) at java.awt.EventQueue.dispatchEvent(EventQueue.java:458) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
30. januar 2005 - 16:17
#64
Noget kunne tyde på din driver ikke er i classpath - hvor har du lagt driveren og hvad hedder den ??? Jeg forstår så bare ikke at du kan fylde arraylisten op, hvis driveren ikke er i classpath.
30. januar 2005 - 16:40
#65
jeg har lagt min mysql-connector-java-3.1.6-bin.jar fil i C:\jdeveloper\jdev\lib hvor alle de andre jar filer ligger
30. januar 2005 - 17:05
#66
Kender ikke jdeveloper, så jeg kan ikke svare dig på om det er rigtigt. Men hvis du tilføjer en ny miljøvariabler med navnet: CLASSPATH og stien: C:\jdeveloper\jdev\lib\mysql-connector-java-3.1.6-bin.jar og genstarter maskinen, så vil driveren være tilgængelig for enhver app. og så kan vi ihvertfald udelukke driveren som værende problemet hvis det stadig ikke virker.
30. januar 2005 - 19:32
#67
Har du sat classpath ????????????????? 1. Højreklik på "Denne Computer" 2. Vælg "Egenskaber" 3. Klik på fanen "Avanceret" 4. Tryk knappen "Miljøvariabler" 5. Under "Systemvariabler" tryk på knappen "Ny" 6. Under "Variabelnavn" skriver du: CLASSPATH 7. Under "Variabelværdi" skriver du: C:\jdeveloper\jdev\lib\mysql-connector-java-3.1.6-bin.jar Tryk OK hele vejen ud - genstart maskinen Du kan også i stedet, vælge at redigere PATH ved at tilføje følgende til eksisterende tekst ;C:\jdeveloper\jdev\lib\mysql-connector-java-3.1.6-bin.jar
30. januar 2005 - 20:08
#68
nu kan jeg få den til at skrive mypackage3.kursusarbejde i textfield så langt så godt '
30. januar 2005 - 20:23
#69
Betyder det at det virker ??
30. januar 2005 - 20:33
#70
Et kig i Oracle's Tutorial siger at extensions skal ligge i lib\ext\ Betyder at du skal flytte din mysql-connector-java-3.1.6-bin.jar hertil: C:\jdeveloper\jdev\lib\ext\ Så er det ikke nødvendigt at sætte classpath hvis du gør det!
30. januar 2005 - 23:18
#71
så nu virker det, fejlen er har været en basal fejl i OOP når objekteren ikke bliver rigtigt instantiseret. carsten svar lige så du kan ¨få point
31. januar 2005 - 07:39
#72
Svar
04. februar 2005 - 23:50
#73
lidt for sendt
05. februar 2005 - 20:18
#74
Øhhh - ikke forstået ????
Kurser inden for grundlæggende programmering