Ik probeer een integer (die ik opvraag uit een andere klasse) te gebruiken in een jLabel maar dit wil natuurlijk niet lukken met mijn beperkte kennis van Java.
Onderstaande klasse ontvangt "int time" en "int[] jumps" van een andere klasse.
Deze gegevens worden weer door de "get" methodes opgehaald door een jFrame. Deze jFrame activeert deze "get" methodes door een jLabel (MouseClick).
De System.out.println() zoals hierboven print de "jumps" prima. Alleen de jLabels worden helaas niet gevuld (de jumps zijn dus goed doorgespeeld maar werken niet in de jLabels).
Wat ik geprobeerd heb:
Onderstaande klasse ontvangt "int time" en "int[] jumps" van een andere klasse.
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
| public class skinning { static public int[] jumps = {0, 0, 0, 0}; static public int time = 1; private timer Timer; public skinning() { } public void setJumps(int[] jumps) { this.jumps = jumps; } public int[] getJumps() { return jumps; } public void setTime(int time) { this.time = time; } public int getTime() { return time; } } |
Deze gegevens worden weer door de "get" methodes opgehaald door een jFrame. Deze jFrame activeert deze "get" methodes door een jLabel (MouseClick).
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
| public class Match extends javax.swing.JFrame { public skinning skin; public Match() { initComponents(); jProgressBarTimeLeft.setMinimum(1); jProgressBarTimeLeft.setMaximum(30); skin = new skinning(); } public void getProgres(){ while (skin.getTime() != 0){ try { Thread.sleep(200); } catch (InterruptedException ex) { Logger.getLogger(Match.class.getName()).log(Level.SEVERE, null, ex); } int time = skin.getTime(); int[] jumps = skin.getJumps(); jProgressBarTimeLeft.setValue(time); jLabelStepsPlayer1.setText(Integer.toString(jumps[0])); jLabelStepsPlayer2.setText(Integer.toString(jumps[1])); jLabelStepsPlayer3.setText(Integer.toString(jumps[2])); jLabelStepsPlayer4.setText(Integer.toString(jumps[3])); System.out.println(jumps[0]); } } private void jLabelStartMouseClicked(java.awt.event.MouseEvent evt) { skin.start(); getProgres(); } } |
De System.out.println() zoals hierboven print de "jumps" prima. Alleen de jLabels worden helaas niet gevuld (de jumps zijn dus goed doorgespeeld maar werken niet in de jLabels).
Wat ik geprobeerd heb:
- Uitvoeren van "getProgress" methode door middel van een andere thread (ook hier werkt System.out.println() wel maar niet het setten van de labels).
- De jFrame opnieuw opmaken door middel van match.invalidate(), match.validate() en match.repaint() (Nog steeds geen tekst in labels en wel System.out.println())