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 -