JavaFX - Renkler
Bir uygulamaya renk uygulamak için JavaFX pakette çeşitli sınıflar sağlar javafx.scene.paintpaketi. Bu paket, Paint adında soyut bir sınıf içerir ve renkleri uygulamak için kullanılan tüm sınıfların temel sınıfıdır.
Bu sınıfları kullanarak aşağıdaki desenlerde renkleri uygulayabilirsiniz -
Uniform - Bu desende renk düğüm boyunca eşit olarak uygulanır.
Image Pattern - Bu, düğümün bölgesini bir görüntü deseniyle doldurmanıza olanak tanır.
Gradient- Bu desende düğüme uygulanan renk bir noktadan diğerine değişir. İki tür degradeye sahiptir:Linear Gradient ve Radial Gradient.
Renk uygulayabileceğiniz tüm düğüm sınıfları Shape, Text (Sahne dahil), adlandırılmış yöntemlere sahip setFill() ve setStroke(). Bunlar, sırasıyla düğümlerin ve konturlarının renk değerlerini ayarlamaya yardımcı olacaktır.
Bu yöntemler, Paint türünde bir nesneyi kabul eder. Bu nedenle, bu tür görüntülerden birini oluşturmak için, bu sınıfları başlatmanız ve nesneyi bu yöntemlere bir parametre olarak iletmeniz gerekir.
Düğümlere Renk Uygulama
Düğümlere tek tip renk desenini ayarlamak için, sınıf rengi olan bir nesneyi setFill(), setStroke() yöntemler aşağıdaki gibidir -
//Setting color to the text
Color color = new Color.BEIGE
text.setFill(color);
//Setting color to the stroke
Color color = new Color.DARKSLATEBLUE
circle.setStroke(color);
Yukarıdaki kod bloğunda, bir renk nesnesi oluşturmak için renk sınıfının statik değişkenlerini kullanıyoruz.
Aynı şekilde, aşağıda gösterildiği gibi RGB değerlerini veya HSB renklendirme standardını veya renklerin web karma kodlarını da kullanabilirsiniz -
//creating color object by passing RGB values
Color c = Color.rgb(0,0,255);
//creating color object by passing HSB values
Color c = Color.hsb(270,1.0,1.0);
//creating color object by passing the hash code for web
Color c = Color.web("0x0000FF",1.0);
Misal
Aşağıda, JavaFX'te düğümlere nasıl renk uygulanacağını gösteren bir örnek verilmiştir. Burada bir daire ve metin düğümleri oluşturuyoruz ve bunlara renkler uyguluyoruz.
Bu kodu adıyla bir dosyaya kaydedin ColorExample.java.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.shape.Circle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
public class ColorExample extends Application {
@Override
public void start(Stage stage) {
//Drawing a Circle
Circle circle = new Circle();
//Setting the properties of the circle
circle.setCenterX(300.0f);
circle.setCenterY(180.0f);
circle.setRadius(90.0f);
//Setting color to the circle
circle.setFill(Color.DARKRED);
//Setting the stroke width
circle.setStrokeWidth(3);
//Setting color to the stroke
circle.setStroke(Color.DARKSLATEBLUE);
//Drawing a text
Text text = new Text("This is a colored circle");
//Setting the font of the text
text.setFont(Font.font("Edwardian Script ITC", 50));
//Setting the position of the text
text.setX(155);
text.setY(50);
//Setting color to the text
text.setFill(Color.BEIGE);
text.setStrokeWidth(2);
text.setStroke(Color.DARKSLATEBLUE);
//Creating a Group object
Group root = new Group(circle, text);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Color Example");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
Kaydedilen java dosyasını aşağıdaki komutları kullanarak komut isteminden derleyin ve yürütün.
Javac ColorExample.java
java ColorExample
Yürütüldüğünde, yukarıdaki program aşağıdaki gibi bir JavaFX penceresi oluşturur -
Düğümlere Görüntü Modeli Uygulama
Düğümlere bir görüntü deseni uygulamak için, ImagePattern sınıf ve nesnesini setFill(), setStroke() yöntemler.
Bu sınıfın kurucusu altı parametreyi kabul eder, yani -
Image - Deseni oluşturmak istediğiniz görüntünün nesnesi.
x and y - Çapa dikdörtgeninin başlangıç noktasının (x, y) koordinatlarını temsil eden çift değişkenler.
height and width - Bir desen oluşturmak için kullanılan görüntünün yüksekliğini ve genişliğini temsil eden çift değişkenler.
isProportional- Bu bir Boole Değişkendir; bu özelliği true olarak ayarladığınızda, başlangıç ve bitiş konumları orantılı olacak şekilde ayarlanır.
ImagePattern radialGradient = new ImagePattern(dots, 20, 20, 40, 40, false);
Misal
Aşağıda, JavaFX'teki düğümlere görüntü deseninin nasıl uygulanacağını gösteren bir örnek verilmiştir. Burada bir daire ve bir metin düğümü oluşturuyoruz ve bunlara bir görüntü deseni uyguluyoruz.
Bu kodu adıyla bir dosyaya kaydedin ImagePatternExample.java.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.scene.paint.Color;
import javafx.scene.paint.ImagePattern;
import javafx.scene.paint.Stop;
import javafx.stage.Stage;
import javafx.scene.shape.Circle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
public class ImagePatternExample extends Application {
@Override
public void start(Stage stage) {
//Drawing a Circle
Circle circle = new Circle();
//Setting the properties of the circle
circle.setCenterX(300.0f);
circle.setCenterY(180.0f);
circle.setRadius(90.0f);
//Drawing a text
Text text = new Text("This is a colored circle");
//Setting the font of the text
text.setFont(Font.font("Edwardian Script ITC", 50));
//Setting the position of the text
text.setX(155);
text.setY(50);
//Setting the image pattern
String link = "https://encrypted-tbn1.gstatic.com"
+ "/images?q=tbn:ANd9GcRQub4GvEezKMsiIf67U"
+ "rOxSzQuQ9zl5ysnjRn87VOC8tAdgmAJjcwZ2qM";
Image image = new Image(link);
ImagePattern radialGradient = new ImagePattern(image, 20, 20, 40, 40, false);
//Setting the linear gradient to the circle and text
circle.setFill(radialGradient);
text.setFill(radialGradient);
//Creating a Group object
Group root = new Group(circle, text);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Image pattern Example");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
Kaydedilen java dosyasını aşağıdaki komutları kullanarak komut isteminden derleyin ve yürütün.
Javac ImagePatternExample.java
java ImagePatternExample
Yürütüldüğünde, yukarıdaki program aşağıdaki gibi bir JavaFX penceresi oluşturur -
Doğrusal Degrade Deseni Uygulama
Düğümlere bir Doğrusal Degrade Modeli uygulamak için, LinearGradient sınıf ve nesnesini setFill(), setStroke() yöntemler.
Bu sınıfın kurucusu beş parametreyi kabul eder, yani -
startX, startY - Bu çift özellikler, degradenin başlangıç noktasının x ve y koordinatlarını temsil eder.
endX, endY - Bu çift özellikler, degradenin bitiş noktasının x ve y koordinatlarını temsil eder.
cycleMethod - Bu bağımsız değişken, başlangıç ve bitiş noktaları ile tanımlanan renk gradyan sınırlarının dışındaki bölgelerin nasıl doldurulması gerektiğini tanımlar.
proportional- Bu bir Boole Değişkendir; Bu mülkün ayarlanması üzerinetrue, başlangıç ve bitiş konumları orantılı olarak ayarlanmıştır.
Stops - Bu bağımsız değişken, gradyan çizgisi boyunca renk durdurma noktalarını tanımlar.
//Setting the linear gradient
Stop[] stops = new Stop[] {
new Stop(0, Color.DARKSLATEBLUE),
new Stop(1, Color.DARKRED)
};
LinearGradient linearGradient =
new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, stops);
Misal
Aşağıda, JavaFX'teki düğümlere bir gradyan modelinin nasıl uygulanacağını gösteren bir örnek verilmiştir. Burada bir daire ve bir metin düğümleri oluşturuyoruz ve bunlara doğrusal gradyan modeli uyguluyoruz.
Bu kodu adıyla bir dosyaya kaydedin LinearGradientExample.java.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.paint.CycleMethod;
import javafx.scene.paint.LinearGradient;
import javafx.scene.paint.Stop;
import javafx.stage.Stage;
import javafx.scene.shape.Circle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
public class LinearGradientExample extends Application {
@Override
public void start(Stage stage) {
//Drawing a Circle
Circle circle = new Circle();
//Setting the properties of the circle
circle.setCenterX(300.0f);
circle.setCenterY(180.0f);
circle.setRadius(90.0f);
//Drawing a text
Text text = new Text("This is a colored circle");
//Setting the font of the text
text.setFont(Font.font("Edwardian Script ITC", 55));
//Setting the position of the text
text.setX(140);
text.setY(50);
//Setting the linear gradient
Stop[] stops = new Stop[] {
new Stop(0, Color.DARKSLATEBLUE),
new Stop(1, Color.DARKRED)
};
LinearGradient linearGradient =
new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, stops);
//Setting the linear gradient to the circle and text
circle.setFill(linearGradient);
text.setFill(linearGradient);
//Creating a Group object
Group root = new Group(circle, text);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Linear Gradient Example");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
Kaydedilen java dosyasını aşağıdaki komutları kullanarak komut isteminden derleyin ve yürütün.
Javac LinearGradientExample.java
java LinearGradientExample
Yürütüldüğünde, yukarıdaki program aşağıdaki gibi bir JavaFX penceresi oluşturur -
Radyal Degrade Deseni Uygulama
Düğümlere bir Radyal Degrade Çoğaltması uygulamak için, GradientPattern sınıf ve nesnesini setFill(), setStroke() yöntemler.
Bu sınıfın kurucusu, bazıları -
startX, startY - Bu çift özellikler, degradenin başlangıç noktasının x ve y koordinatlarını temsil eder.
endX, endY - Bu çift özellikler, degradenin bitiş noktasının x ve y koordinatlarını temsil eder.
cycleMethod - Bu bağımsız değişken, renk gradyan sınırlarının dışındaki bölgelerin başlangıç ve bitiş noktaları ile nasıl tanımlandığını ve nasıl doldurulacaklarını tanımlar.
proportional- Bu bir Boole Değişkendir; Bu mülkün ayarlanması üzerinetrue başlangıç ve bitiş konumları orantılı olarak ayarlanmıştır.
Stops - Bu bağımsız değişken, gradyan çizgisi boyunca renk durdurma noktalarını tanımlar.
//Setting the radial gradient
Stop[] stops = new Stop[] {
new Stop(0.0, Color.WHITE),
new Stop(0.3, Color.RED),
new Stop(1.0, Color.DARKRED)
};
RadialGradient radialGradient =
new RadialGradient(0, 0, 300, 178, 60, false, CycleMethod.NO_CYCLE, stops);
Misal
Aşağıda, JavaFX'teki düğümlere bir radyal gradyan modelinin nasıl uygulanacağını gösteren bir örnek verilmiştir. Burada bir daire ve bir metin düğümleri oluşturuyoruz ve bunlara gradyan modeli uyguluyoruz.
Bu kodu adıyla bir dosyaya kaydedin RadialGradientExample.java.
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.paint.CycleMethod;
import javafx.scene.paint.RadialGradient;
import javafx.scene.paint.Stop;
import javafx.stage.Stage;
import javafx.scene.shape.Circle;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
public class RadialGradientExample extends Application {
@Override
public void start(Stage stage) {
//Drawing a Circle
Circle circle = new Circle();
//Setting the properties of the circle
circle.setCenterX(300.0f);
circle.setCenterY(180.0f);
circle.setRadius(90.0f);
//Drawing a text
Text text = new Text("This is a colored circle");
//Setting the font of the text
text.setFont(Font.font("Edwardian Script ITC", 50));
//Setting the position of the text
text.setX(155);
text.setY(50);
//Setting the radial gradient
Stop[] stops = new Stop[] {
new Stop(0.0, Color.WHITE),
new Stop(0.3, Color.RED),
new Stop(1.0, Color.DARKRED)
};
RadialGradient radialGradient =
new RadialGradient(0, 0, 300, 178, 60, false, CycleMethod.NO_CYCLE, stops);
//Setting the radial gradient to the circle and text
circle.setFill(radialGradient);
text.setFill(radialGradient);
//Creating a Group object
Group root = new Group(circle, text);
//Creating a scene object
Scene scene = new Scene(root, 600, 300);
//Setting title to the Stage
stage.setTitle("Radial Gradient Example");
//Adding scene to the stage
stage.setScene(scene);
//Displaying the contents of the stage
stage.show();
}
public static void main(String args[]) {
launch(args);
}
}
Kaydedilen java dosyasını aşağıdaki komutları kullanarak komut isteminden derleyin ve yürütün.
Javac RadialGradientExample.java
java RadialGradientExample
Yürütüldüğünde, yukarıdaki program aşağıdaki gibi bir JavaFX penceresi oluşturur -