Skip to content

Instantly share code, notes, and snippets.

@urankajtazaj
Created April 13, 2017 06:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save urankajtazaj/8fd7f3df9d43b747a8c79d263e998da9 to your computer and use it in GitHub Desktop.
Save urankajtazaj/8fd7f3df9d43b747a8c79d263e998da9 to your computer and use it in GitHub Desktop.
package sample;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Button;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.HBox;
import javafx.scene.shape.Rectangle;
import java.net.URL;
import java.util.Random;
import java.util.ResourceBundle;
public class Controller implements Initializable {
ToggleGroup g = new ToggleGroup();
@FXML private RadioButton rbKuq, rbGjel, rbKaltert, rbGjitha;
@FXML private HBox hbox, hbox2, hexHbox;
private Random rand;
@Override
public void initialize(URL location, ResourceBundle resources) {
rbGjel.setToggleGroup(g);
rbGjitha.setToggleGroup(g);
rbKaltert.setToggleGroup(g);
rbKuq.setToggleGroup(g);
Generate(-1);
}
@FXML
private void generateColor(){
if (rbKuq.isSelected())
Generate(0);
else if (rbGjel.isSelected())
Generate(1);
else if (rbKaltert.isSelected())
Generate(2);
else Generate(-1);
}
private void Generate(int index){
String rgb;
rand = new Random();
int rnd = 0;
for (int j = 0; j < 4; j++) {
rgb = "rgb(";
for (int i = 0; i < 3; i++) {
if (index == i){
rnd = rand.nextInt(256);
rgb += ((rnd < 200 || rnd > 254) ? 230 : rnd) + ",";
}else {
rgb += rand.nextInt(200) + ",";
}
}
rgb = rgb.substring(0, rgb.length()-1) + ")";
String[] s = rgb.substring(4, rgb.length()-1).split(",");
((TextField) hbox2.getChildren().get(j)).setText(s[0] + ", " + s[1] + ", " + s[2]);
((TextField) hexHbox.getChildren().get(j)).setText(decimalToHex(s[0]) + decimalToHex(s[1]) + decimalToHex(s[2]));
hbox.getChildren().get(j).setStyle("-fx-fill: " + rgb);
}
}
private String decimalToHex(String in){
int n = Integer.parseInt(in);
StringBuilder hex = new StringBuilder("");
int remainer = 0;
while (n > 0){
remainer = n % 16;
if (remainer == 10) hex.append("A");
else if (remainer == 11) hex.append("B");
else if (remainer == 12) hex.append("C");
else if (remainer == 13) hex.append("D");
else if (remainer == 14) hex.append("E");
else if (remainer == 15) hex.append("F");
else hex.append(remainer);
n /= 16;
}
if (hex.length() == 1) hex.append(0);
return hex.reverse().toString();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment