Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Java] Background wil niet luisteren..

Pagina: 1
Acties:

  • HyperBart
  • Registratie: Maart 2006
  • Laatst online: 15:00
Ik ben thuis bezig met een oefening van school, en ik geraak er maar niet uit (debuggen hebben we nog niet geleerd, kzit wat te rommelen, maar ikheb een main-project nodig en kan daar nergens iets van regelen, java is niet mijn ding ;) ).

Tot zover is dit mijn code, het moet met arrays voor de buttons en de bedoeling is dat iedere button een willekeurige groene kleur heeft, en na een druk op de knop moet deze verdwijnen. Ik maak een gewoon Class library project aan, met een package en een class Oef1.
De groene kleur blijft dus zwart, en met mijn stel hersens en het logisch volgen van de code lijkt het mij toch dat iedere keer een nieuwe kleur er moet komen en deze mooi onder de 255 blijft...

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
46
47
48
package oefening6;

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

import java.util.*;

public class Oefening6 extends javax.swing.JApplet implements ActionListener {
     
     private Container content;
     private JButton [] knoppen;
     
     public Oefening6 () {
          int willekeurig;
          content = getContentPane ();
          content.setLayout (new BorderLayout ());
          
          knoppen = new JButton [5];
          
          for (int i=0; i<5; i++) {
               willekeurig = (int) Math.random () * 255;
               
               knoppen[i] = new JButton ("" + i);
               
               knoppen[i].addActionListener (this);
               
               knoppen[i].setBackground (new Color (0,willekeurig ,0));
               
          }

          
          content.add (knoppen[0], BorderLayout.NORTH);
          content.add (knoppen[1], BorderLayout.SOUTH);
          content.add (knoppen[2], BorderLayout.WEST);
          content.add (knoppen[3], BorderLayout.EAST);
          content.add (knoppen[4], BorderLayout.CENTER);
          
          
     }
     
     public void actionPerformed (ActionEvent e) {
          
          JButton dummy = (JButton) e.getSource ();
          dummy.setVisible (false);
     }
     
}

[ Voor 5% gewijzigd door HyperBart op 11-03-2008 22:00 ]


  • L01
  • Registratie: December 2003
  • Laatst online: 17-11 21:53

L01

Heeft willekeurig wel een goede waarde, check dat eerst eens.

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • HyperBart
  • Registratie: Maart 2006
  • Laatst online: 15:00
Hoe kan ik dat het best doen?
Trouble-shooting in onze code hebben we echt nog niets van geleerd, VB.net was daar iets vlotter in...

* HyperBart checkt dit hier om de minuut ;)

Op eerste zicht wel, als ik naar de code kijk, ik parse naar een integer, heb een random die goed wordt gecompiled, dus...

[ Voor 37% gewijzigd door HyperBart op 11-03-2008 22:07 ]


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 13:37

Robtimus

me Robtimus no like you

Java:
1
(int) Math.random () * 255

Daar staat het volgende, met haakjes:
Java:
1
((int) Math.random()) * 255

Dus de uitkomst zal altijd 0 zijn. Zet een paar haakjes goed neer en dat probleem zou opgelost moeten zijn.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • HyperBart
  • Registratie: Maart 2006
  • Laatst online: 15:00
Aha !
Dank je wel, ik las er gewoon over, de haakjes maakten heel wat duidelijk !

uiteindelijke oplossing:

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
46
47
48
49
50
package oefening6;

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

import java.util.*;

public class Oefening6 extends javax.swing.JApplet implements ActionListener {
     
     private Container content;
     private JButton [] knoppen;
     
     public Oefening6 () {
          int willekeurig;
          content = getContentPane ();
          content.setLayout (new BorderLayout ());
          
          knoppen = new JButton [5];
          
          for (int i=0; i<5; i++) {
               //willekeurig = (int) Math.random () * 255;
               //willekeurig = ((int) Math.random()) * 255;
               willekeurig = (int) (Math.random () * 255);
               
               knoppen[i] = new JButton ("" + i);
               
               knoppen[i].addActionListener (this);
               
               knoppen[i].setBackground (new Color (0,willekeurig ,0));
               
          }

          
          content.add (knoppen[0], BorderLayout.NORTH);
          content.add (knoppen[1], BorderLayout.SOUTH);
          content.add (knoppen[2], BorderLayout.WEST);
          content.add (knoppen[3], BorderLayout.EAST);
          content.add (knoppen[4], BorderLayout.CENTER);
          
          
     }
     
     public void actionPerformed (ActionEvent e) {
          
          JButton dummy = (JButton) e.getSource ();
          dummy.setVisible (false);
     }
     
}

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 08:34

Creepy

Tactical Espionage Splatterer

Tijd om je leraar eens subtiel aan te spreken om je te leren debuggen. Als je stap voor stap door de code was gelopen ha dje in elk geval moeten opvallen dat willekeurig 0 bleef. Ik weet niet of je een IDE gebruikt maar zo ja: zoek uit hoe je een breakpoint kunt plaatsen en zoek uit hoe je regel voor regel door de code heen kan lopen. Als je dit doet kan je vaak door over een variabele te hoveren met je muis de inhoud van die variabele zien en anders is er vaak een los venster waar alle (locale) variabelen met hun inhoud in staan. Dat gaat je heel veel tijd schelen in het zoeken naar fouten.

[ Voor 20% gewijzigd door Creepy op 11-03-2008 23:33 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • L01
  • Registratie: December 2003
  • Laatst online: 17-11 21:53

L01

Met
Java:
1
System.out.println(variabele); 

kan je een waarde naar console printen maar netter is om een logger te installeren.

Voor netbeans en eclipse zijn vast wel goede loggers te vinden.

[ Voor 6% gewijzigd door L01 op 12-03-2008 09:33 ]

Hi, I'm a signature virus. Put me in your signature to help me spread.


  • Haan
  • Registratie: Februari 2004
  • Laatst online: 17:54

Haan

dotnetter

Vaardigheid in debuggen is ontzettend belangrijk, dus ik zou zeker zorgen dat je dit leert. Tijdens mijn programmeercolleges was dit (na een introductie in de basics natuurlijk ;) ) zo'n beetje het eerste wat we moesten leren.

Kater? Eerst water, de rest komt later

Pagina: 1