shadow 효과

: 그림자 효과

 

- dropshadow() : 바깥 그림자를 주어 튀어 나오는 느낌

- innershadow() : 안쪽 그림자를 주어 움푹 들어간 느낌

- blur-type : gaussian, one-pass-box, three-pass-box, two-pass-box

- radius : blur kernel의 반지름, 0.0~127.0 사이의 값, 기본값 10

- spread, choke : 그림자의 spread와 choke, 0.0~1.0 사이의 값, 기본값은 0.0

- offsetX, offsetY : 그림자의 편차

 

2개의 Botton 컨트롤 배치

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.*?>
<?import javafx.geometry.*?>
<?import javafx.scene.control.*?>

<HBox prefWidth="300" prefHeight="150" xmlns:fx="http://javafx.com/fxml"  spacing="50" fillHeight="false" alignment="CENTER">
	<padding>
		<Insets topRightBottomLeft="10"/>
	</padding>
   <children>
      <Button id="btn1" prefWidth="100" prefHeight="50" text="DropShadow"/>
      <Button id="btn2" prefWidth="100" prefHeight="50" text="InnerShadow"/>
   </children>
</HBox>

 

CSS 파일

#btn1 {
	-fx-effect: dropshadow(three-pass-box, rgba(0, 0, 0, 0.7), 10, 0, 5, 5);
}

#btn2 {
	-fx-effect: innershadow(three-pass-box, rgba(0, 0, 0, 0.7), 10, 0, 5, 5.1);
}

 

실행 클래스

package sec10.exam07_shadow;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class AppMain extends Application {
	@Override
	public void start(Stage primaryStage) throws Exception {
		Parent root = FXMLLoader.load(getClass().getResource("root.fxml"));
		Scene scene = new Scene(root);
		scene.getStylesheets().add(getClass().getResource("app.css").toString());
		
		primaryStage.setTitle("AppMain");
		primaryStage.setScene(scene);
		primaryStage.show();
	}
	
	public static void main(String[] args) {
		launch(args);
	}
}

+ Recent posts