Compiler-Fehler int zu Wahrheitswert

df16

Mitglied
Wieso kann man, wie im Bild dargelegt, nicht für einen bestimmten int eine Variable anpassen.
(Die Variablen wurden bis auf farbe schon vorher benannt)
 

Anhänge

  • Javaforum bild 7.JPG
    Javaforum bild 7.JPG
    54 KB · Aufrufe: 56

KaffeeFan

Bekanntes Mitglied
1. Ich würde empfehlen ein Switch-case zu benutzen, anstatt if-else
2. du solltest ein doppeltes Gleichzeichen verwenden, da das einfache Gleichheitszeichen ein Zuweisungsoperator ist

Gruß
Luk
 

df16

Mitglied
Also mit zufallsgenerator sieht das jetzt so, wie im Bild, aus. Jedoch finde ich keine Möglichkeit, dass eine Farbe nicht doppelt vorkommt.
 

Anhänge

  • Javaforum bild 8.JPG
    Javaforum bild 8.JPG
    34,9 KB · Aufrufe: 37

df16

Mitglied
Bin noch ein Anfänger und wusste bis jetzt noch nicht was Code Tags sind, darum hab ich auch keine verwendet.:(
Was die Variablen betrifft: i5 ist einfach für For-Schleife; x3/y3 sind Koordinaten; r2 ein Radius -> das Array loesungsfeld sind Kreise; f=eine Farbe; n3 der einzelne Kreis im Array der aufgerufen werden soll; Array hat die Länge 6
Der im Bild gezeigte Code kann 6 Felder zeichnen mit per Zufall bestimmter Farbe der einzelnen Felder, jedoch können die Farben mehrfach auftreten. Mein Ziel ist, dass alle zufällig eine unterschiedliche Farbe haben.
 
X

Xyz1

Gast
mach das doch so:
Java:
/**
 * @author DW on 05/18/2016
 */
public class JavaApplication1 {

    private static int rgb = -1;

    public static void main(String[] args) {
        JFrame jf = new JFrame("demo");
        JButton jb = new JButton("naechste Farbe");
        final Canvas ca = new Canvas() {
            @Override
            public void paint(Graphics grphcs) {
                grphcs.setColor(new Color(rgb));
                grphcs.fillRoundRect(25, 25, 300, 300, 50, 25);
            }
        };
        jb.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent ae) {
                rgb = 0;
                for (int i = 0; i < 24; i += 8) {
                    rgb |= (Math.random() < 0.5 ? 0xFF : 0x00) << i;
                }
                ca.repaint();
            }
        });
        jf.setLayout(new BorderLayout());
        jf.add(jb, BorderLayout.NORTH);
        jf.add(ca, BorderLayout.CENTER);

        jf.setSize(400, 400);

        jf.setVisible(true);
    }

}

de.png

Wird jedes mal zufällig eine Farbe gewählt mit rgb |= (Math.random() < 0.5 ? 0xFF : 0x00) << i;. Andere möglichkeit wäre es HSV, um Farben "besser zu wählen".

Edit: Ja, stimmt, Canvas ist etwas altbacken.
 

Ähnliche Java Themen

Neue Themen


Oben