Slider
사용 예제 ) 코드를 복붙 하여 실행해 보시기 바랍니다.
설명은 주석과 코드 아랫부분에 있습니다.
1. 메인 파일 예제입니다.(title 만 다르고 내용이 거의 변하지 않습니다.)
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 = (Parent)FXMLLoader.load(getClass().getResource("main.fxml"));
Scene scene = new Scene(root);
primaryStage.setTitle("슬라이드 예제 입니다.");
primaryStage.setScene(scene);
primaryStage.show();
primaryStage.setAlwaysOnTop(true);
}
public static void main(String[] args) {
launch(args);
}
}
2. main.fxml 파일 예제입니다.
그대로 복붙 하여 테스트해보시면 됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Slider?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1" fx:controller="MainHandler">
<children>
<Label alignment="CENTER" layoutX="24.0" layoutY="24.0" prefHeight="30.0" prefWidth="550.0" style="-fx-border-color: black;" text="아래의 슬라이더를 움직여 보세요.">
<font>
<Font size="24.0" />
</font></Label>
<Label layoutX="27.0" layoutY="259.0" style="-fx-border-color: red;" text="확인창" />
<TextArea fx:id="textArea" layoutX="24.0" layoutY="285.0" prefHeight="89.0" prefWidth="550.0" />
<Slider fx:id="sliderH" layoutX="46.0" layoutY="147.0" prefHeight="14.0" prefWidth="212.0" />
<Slider fx:id="sliderV" layoutX="504.0" layoutY="91.0" orientation="VERTICAL" />
</children>
</AnchorPane>
3. MainHandler.java 핸들러 파일입니다.
그대로 복붙 하여 테스트하시길 바랍니다.
import java.net.URL;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Slider;
import javafx.scene.control.TextArea;
public class MainHandler implements Initializable {
@FXML
private TextArea textArea;
//가로 슬라이더
@FXML
private Slider sliderH;
//세로 슬라이더
@FXML
private Slider sliderV;
@Override
public void initialize(URL location, ResourceBundle resources) {
// 가로 슬라이더 설정
// 슬라이더의 움직임을 감지 하여 그 값을 돌려 주는 부분
//따로 손델 부분은 없다.안쪽에만 원하는 코드를 작성 하면 됩니다.
sliderH.valueProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
//여기부터 원하는 코드를 넣어서 응용을 해주면 됩니다.
//소수로 값을 받아 오므로 첫번째 자리에서 반올림 해주는 round() 로 정수로 받아온다.
int nImsi = (int) Math.round(sliderH.getValue());
//받아온 정수를 현상황에 맞게 값을 만들어 준다 . 여기서는 곱하기 100을 해준다.
String strNimsi = "" + (nImsi * 100);
//실시간으로 반영 되는 값을 알리창에 출력하낟.
textArea.setText("가로 슬라이더의 값 : "+strNimsi);
}
});
//초기 설정값을 정해준다.
sliderH.setValue(50);
// 세로 슬라이더 설정
// 슬라이더의 움직임을 감지 하여 그 값을 돌려 주는 부분
//따로 손델 부분은 없다.안쪽에만 원하는 코드를 작성 하면 됩니다.
sliderV.valueProperty().addListener(new ChangeListener<Number>() {
@Override
public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
//여기부터 원하는 코드를 넣어서 응용을 해주면 됩니다.
//소수로 값을 받아 오므로 첫번째 자리에서 반올림 해주는 round() 로 정수로 받아온다.
int nImsi = (int) Math.round(sliderV.getValue());
//받아온 정수를 현상황에 맞게 값을 만들어 준다 . 여기서는 곱하기 100을 해준다.
String strNimsi = "" + (nImsi * 100);
//실시간으로 반영 되는 값을 알리창에 출력하낟.
textArea.setText("세로 슬라이더의 값 : "+strNimsi);
}
});
//초기 설정값을 정해준다.
sliderV.setValue(50);
}
}
정형화된 표현이라 따로 수정할 곳이 많지 않습니다.
예제에서 제가 표시해둔 곳부터 사용할 코드를 적용 시키면
되겠습니다.
변수로 저장했다가 그 값을 전달하면 됩니다.
반올림으로 사용한 Math.round( ) 메서드입니다.
//여기부터 원하는 코드를 넣어서 응용을 해주면 됩니다.
//소수로 값을 받아 오므로 첫번째 자리에서 반올림 해주는
//round() 로 형변환을 해서 정수로 받아온다.
int nImsi = (int) Math.round(sliderH.getValue());
그외 같이 쓰이는 메소드 입니다.
Math.ceil(); //올림 기능을 하는 메소드 입니다.
Math.floor();//버림 기능을 하는 메소드 입니다.
초기 설 라이드의 위치 값을 정해주는 메소드 입니다.
//초기 설정값을 정해준다
sliderH.setValue(50);
값이 50이라 가운데에서부터 시작합니다.
아래는 실행 화면 입니다.
참고 하시기 바랍니다.
728x90
반응형
'자바' 카테고리의 다른 글
자바 자바fx 날짜 색깔 DatePicker , ColorPicker [북붙따라하기] (0) | 2021.01.04 |
---|---|
자바 자바fx ToggleButton 토글버튼 [북붙따라하기] (0) | 2021.01.03 |
자바 자바fx radioButton 라디오버튼 [북붙따라하기] (0) | 2021.01.03 |
자바 자바fx 체크박스 checkBox [북붙따라하기] (0) | 2021.01.02 |
자바 문자열을 정수형으로 변경하기 [북붙따라하기] (0) | 2021.01.02 |
댓글