Ich habe ein Projekt in der Klasse, wo ich eine Ampel mit nur drei Kreisen anzeigen muss. Ich begann mit der gelben und versuchte dann, an irgendeiner anderen Stelle eine rote Farbe hinzuzufügen, nur um zu sehen, ob ich es könnte, aber die gelbe ist die einzige, die zeigt. Ich kann nicht sagen, ob der rote irgendwie unter dem gelben liegt, aber auf jeden Fall macht es für mich keinen Sinn, warum der rote Kreis nicht angezeigt wird.Mehr als einen Kreis in Java erstellen
package tryingGraphicsStuff;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.shape.Circle;
import javafx.scene.paint.*;
import javafx.scene.text.*;
import javafx.scene.control.*;
public class TryingGraphicsStuff extends Application{
@Override
public void start(Stage stage) throws Exception {
// create circle
Circle circle = new Circle();
circle.setCenterX(150);
circle.setCenterY(150);
circle.setRadius(50);
circle.setFill(Color.RED);
// place on pane
StackPane p = new StackPane();
p.getChildren().add(circle);
// ensure it stays centered if window resized
//circle.centerXProperty().bind(p.widthProperty().divide(2));
//circle.centerYProperty().bind(p.heightProperty().divide(2));
Circle circleTwo = new Circle();
circleTwo.setCenterX(400);
circleTwo.setCenterY(400);
circleTwo.setRadius(50);
circleTwo.setFill(Color.YELLOW);
// place on pane
p.getChildren().add(circleTwo);
// create scene from pane
Scene scene = new Scene(p, 300, 1000);
// place scene on stage
stage.setTitle("Circle");
stage.setScene(scene);
stage.show();
}
public static void main (String [] args)
{
Application.launch(args);
}
}
Nein, beide 'Circle's sind auf dem Bildschirm, aber die gelbe ist über die rote gemalt. Sie können dies leicht überprüfen, indem Sie 'Color.YELLOW.deriveColor (0, 1, 1, 0.5)' (gelb mit Alpha = 0.5) anstelle von 'Color.YELLOW' verwenden, was dazu führt, dass ein orangefarbener Kreis angezeigt wird. – fabian