ERLEDIGT
NEIN
NEIN
ANTWORTEN
16
16
ZUGRIFFE
416
416
EMPFEHLEN
-
11.01.09 19:54 #1$$Money$$ Tutorials.de Gastzugang
Hallo,
Ich habe ein Problem, ich habe einen Thread, jedesmal wenn dieser Thread durchlaufen wurde möchte ich in einem JLabel namens "label1" einen neuen Text zuweisen. Ich habe bereits folgendes probiert.
Code :1 2 3 4 5 6 7
class car extends Thread { public void run() { //Anweisungen label1.setText("Punkte: "+points); label1.revalidate(); } }
Ich habe es auch mit update oder repaint versucht aber ich krieg immer eine Null pointer Exception.
Was kann ich dagegen machen
MfG:
Money
-
11.01.09 19:57 #2
Ich rate mal, dass du die betreffende Variable auch auf ein Objekt verweißen lassen soltest.
-
11.01.09 20:01 #3$$Money$$ Tutorials.de Gastzugang
Kannst du das ein wenig erläutern ich bilcke da gerade nicht so durch...
-
11.01.09 20:04 #4
Poste bitte ein wenig mehr Code.
Vor allem das wo das JLabel definiert wird.
-
11.01.09 20:10 #5$$Money$$ Tutorials.de Gastzugang
Hier wird das Label erstellt und auf den Bildschirm gebracht:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
CarCrash(String titel) { super(titel); //Fensterkomponenten setLayout(null); bildanzeige = new Bildleinwand(); bildanzeige.setBounds(0,0,960,544); JButton button1 = new JButton("Neues Spiel"); button1.setBounds(960,200,140,30); JButton button2 = new JButton("Pause"); button2.setBounds(960,235,140,30); JButton button3 = new JButton("Fortsetzen"); button3.setBounds(960,270,140,30); JButton button4 = new JButton("Beenden"); button4.setBounds(960,305,140,30); JLabel label1 = new JLabel("Punkte: "+points); label1.setBounds(965,0,140,30); add(bildanzeige); add(button1); add(button2); add(button3); add(button4); add(label1); usw....
und vorher gibts da noch das:
Code java:1
private JLabel label1;
reicht das
-
11.01.09 20:12 #6
Bitte noch die Klasse "car", oder ist die so schon vollständig?
-
11.01.09 20:14 #7$$Money$$ Tutorials.de GastzugangCode java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
class car extends Thread{ public void run(){ while (police_ypos3 < 550) { if(flag && flag2){ police_ypos3 += police_speed3; if(police_ypos3 >=550){ while(true){ police_ypos3 = generator.nextInt(400); if(police_ypos3 < 120){ continue; } police_ypos3 = police_ypos3/-1; break; } while(true){ police_xpos3 = generator.nextInt(693); if(police_xpos3 <466){ continue; } break; } police_speed3 += 0.15; points++; label1.setText("Punkte: "+points); label1.revalidate(); } bildanzeige.repaint(); try { Thread.sleep(10); } catch (InterruptedException e) { interrupt(); } if(flag == false && flag2 == false){ break; } }} } }
-
11.01.09 20:19 #8
So wie ich das sehe definierst du label1 nicht, deshalb wundert es mich, dass es nur eine NullPointer ist.
Du musst das Ding natürlich auch an das Car übergeben:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
class car extends Thread{ private JLabel label1; public car(JLabel l) { this.label1 = l; } public void run(){ while (police_ypos3 < 550) { if(flag && flag2){ police_ypos3 += police_speed3; if(police_ypos3 >=550){ while(true){ police_ypos3 = generator.nextInt(400); if(police_ypos3 < 120){ continue; } police_ypos3 = police_ypos3/-1; break; } while(true){ police_xpos3 = generator.nextInt(693); if(police_xpos3 <466){ continue; } break; } police_speed3 += 0.15; points++; label1.setText("Punkte: "+points); label1.revalidate(); } bildanzeige.repaint(); try { Thread.sleep(10); } catch (InterruptedException e) { interrupt(); } if(flag == false && flag2 == false){ break; } }} } }
-
11.01.09 20:26 #9$$Money$$ Tutorials.de Gastzugang
Funktioniert nicht nun krieg ich die meldung:
CarCrash
C:\Dokumente und Einstellungen\Beat\Desktop\CarCrash_Lite>javac CarCrash.java
CarCrash.java:44: cannot find symbol
symbol : constructor car()
location: class CarCrash.car
car t3 = new car();
^
-
11.01.09 20:51 #10
Die CarCrash.java hast du vorher nur bis etwa Zeile 25 gepostet.
-
Hallo,
du musst natürlich auch die Zeile ändern, in der das Object der Klasse car angelegt wird. Du rufst dort den Standard-Kontruktor (new car()) auf. Diesen gibts jetzt aber nicht mehr. Dort musst du jetzt dein Label übergeben.
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
13.01.09 13:19 #12$$Money$$ Tutorials.de Gastzugang
Naja das funktioniert genau so wenig wie alles andere hier beschriebene...
-
Hallo,
alles, was hier beschrieben wurde funktioniert eigentlich schon, es muss nur richtig umgesetzt werden.
Zeig mal die Stelle an der du das car-Object anlegst.
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
13.01.09 16:04 #14$$Money$$ Tutorials.de Gastzugang
Ich nehme an du meinst das:
Code java:1 2
car t = new car(); t.start();
und das ganze befindet sich dort wo das JLabel erstellt und auf den Bildschirm gebracht wird also hier:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
CarCrash(String titel) { super(titel); //Fensterkomponenten setLayout(null); bildanzeige = new Bildleinwand(); bildanzeige.setBounds(0,0,960,544); JButton button1 = new JButton("Neues Spiel"); button1.setBounds(960,200,140,30); JButton button2 = new JButton("Pause"); button2.setBounds(960,235,140,30); JButton button3 = new JButton("Fortsetzen"); button3.setBounds(960,270,140,30); JButton button4 = new JButton("Beenden"); button4.setBounds(960,305,140,30); JLabel label1 = new JLabel("Punkte: "+points); label1.setBounds(965,0,140,30); add(bildanzeige); add(button1); add(button2); add(button3); add(button4); add(label1); car t = new car(); t.start(); usw....
Ich hoffe das bringt uns weiter...
MfG:
-
Wenn du die Klasse car von Kai übernommen hast, bringt uns das weiter.
Ersetze diese Zeile
Code :1
car t = new car();
durch diese Zeile
Code :1
car t = new car(labell);
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
Ähnliche Themen
-
blinkende JLabel
Von Na_dine im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 23.10.07, 18:35 -
JLabel und Sonderzeichen
Von normaler_spinner im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 30.07.07, 23:40 -
JLabel
Von lernen.2007 im Forum JavaAntworten: 9Letzter Beitrag: 28.05.07, 20:13 -
JLabel & invokeLater
Von Javazubi im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 8Letzter Beitrag: 27.10.06, 14:34 -
JTextField auf JLabel
Von Ripper11 im Forum JavaAntworten: 2Letzter Beitrag: 17.10.06, 18:24





Zitieren

Login





