Avatar billede willi Nybegynder
03. december 2003 - 09:00 Der er 6 kommentarer og
1 løsning

Java applet. Udskriver ikke fillColor

Jeg har denne kode fra Horstmans bog J2.
Men får ikke udskrift til browser.
Hvorfor ikke?

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.Color;
import javax.swing.JOptionPane;

public class ExerciseP4_4 extends Applet

{        public void init()
        {   
                           
            String input;
            input = JOptionPane.showInputDialog("red");
            float red = Float.parseFloat(input);
       
            input = JOptionPane.showInputDialog("green");
            float green = Float.parseFloat(input);
           
            input = JOptionPane.showInputDialog("blue");
            float blue = Float.parseFloat(input);
           
           
            fillColor = new Color(red);
            }

    public void paint(Graphics g)
        { final int SQUARE_LENGTH = 500;
            Graphics2D g2 = (Graphics2D)g;
            g2.setColor(fillColor);

            Rectangle square = new Rectangle(
                (getWidth() - SQUARE_LENGTH) / 2,
                (getHeight() - SQUARE_LENGTH) / 2,
                SQUARE_LENGTH,
                SQUARE_LENGTH);
               
                g2.fill(square);
                             
        }
       
        private Color fillColor;
}

Der er ikke i bogens bug report angivet andet end fill skal ændres til fillColor
Avatar billede billen Nybegynder
03. december 2003 - 09:02 #1
g2.setBackground( fillColor );
Avatar billede billen Nybegynder
03. december 2003 - 09:04 #2
nej, det er ikke det.. sorry, jeg er ikke helt vågen ;-)
Avatar billede billen Nybegynder
03. december 2003 - 09:05 #3
Avatar billede _carsten Nybegynder
03. december 2003 - 10:03 #4
Husk at checke for compileringsfejl, fillColor = new Color(red); må give dig en compileringsfejl.

Ret nedenstående, så virker det.

Ret:  fillColor = new Color(red);
Til:  fillColor = new Color(red, green, blue);
Avatar billede willi Nybegynder
03. december 2003 - 10:17 #5
Det er rigtigt Carsten. Det er en fejl. Jeg forsøgte lige "noget".
Der står: fillColor = new Color(red, green, blue);
Det virker så stadig ikke.
Men fejlen ligger i init metoden.
Anvender jeg fillColor = Color.red; viser den hvad den skal (red).

Jeg kan ikke lige se hvor det i input angives at der er tale om Color.red el. Color.green|Color.blue
Avatar billede _carsten Nybegynder
03. december 2003 - 10:23 #6
Hvis du får fejl, kan det kun skyldes at du indtaster dine r,g og b med komma - det skal være punktum

Altså 0.5  ikke  0,5

Hvis du retter som jeg tidligere har beskrevet kan det både kompilere og det virker også.
Avatar billede willi Nybegynder
03. december 2003 - 10:41 #7
:)
Næste sp. var ellers hvorfor og hvordan der skulle anvende og blev anvendt float....
Det undrede mig. Det skulle jeg nok have gravet lidt mere i.
(Jeg mente bestemt jeg læste der skulle indtastes en string! hvorefter den valgte farve blev vist!)
:|

Tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester