checkBox
사용 예제 ) 코드를 복붙 하여 실행해 보시기 바랍니다.
설명은 주석과 코드 아랫부분에 있습니다.
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("checkBox 예제 입니다.");
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.CheckBox?>
<?import javafx.scene.control.Label?>
<?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 layoutX="109.0" layoutY="61.0" style="-fx-border-color: black;" text="아래의 원하는 항목을 선택하세요.">
<font>
<Font size="24.0" />
</font></Label>
<Label layoutX="109.0" layoutY="220.0" style="-fx-border-color: red;" text="확인창" />
<TextArea fx:id="textArea" layoutX="109.0" layoutY="245.0" prefHeight="130.0" prefWidth="383.0" />
<CheckBox fx:id="checkBoxMoney" layoutX="106.0" layoutY="121.0" mnemonicParsing="false" onAction="#selectCheckBox" text="돈" />
<CheckBox fx:id="checkBoxHonor" layoutX="204.0" layoutY="121.0" mnemonicParsing="false" onAction="#selectCheckBox1" text="명예" />
<CheckBox fx:id="checkBoxPower" layoutX="307.0" layoutY="121.0" mnemonicParsing="false" onAction="#selectCheckBox2" text="권력" />
<CheckBox fx:id="checkBoxNothing" layoutX="399.0" layoutY="121.0" mnemonicParsing="false" onAction="#selectCheckBox3" text="사랑" />
</children>
</AnchorPane>
3. MainHandler.java 핸들러 파일입니다.
그대로 복붙 하여 테스트하시길 바랍니다.
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.CheckBox;
import javafx.scene.control.TextArea;
public class MainHandler implements Initializable {
@FXML
private TextArea textArea;
@FXML
private CheckBox checkBoxMoney,checkBoxHonor,checkBoxPower,checkBoxNothing;
@FXML
void selectCheckBox(ActionEvent event) {
//isSelected()는 선택 되었을 때 true를 돌려주는 메소드 입니다.
//보통 이메소드를 사용하여 입력 여부를 받고 데이터를 전달 받습니다.
if(checkBoxMoney.isSelected()) {
//여기에 돈이 선택 되어졌을 때의 처리 구문을 작성 하시면 되겠습니다.
textArea.setText("돈 이선택 되었습니다.\n");
}else {
textArea.setText("돈 이선택 취소!!!! 되었습니다.\n");
}
}
@FXML
void selectCheckBox1(ActionEvent event) {
//isSelected()는 선택 되었을 때 true를 돌려주는 메소드 입니다.
//보통 이메소드를 사용하여 입력 여부를 받고 데이터를 전달 받습니다.
if(checkBoxHonor.isSelected()) {
//여기에 명예가 선택 되어졌을 때의 처리 구문을 작성 하시면 되겠습니다.
//textArea.setText("");
textArea.setText("명예 가선택 되었습니다.\n");
}else {
textArea.setText("명예가 선택 취소!!!! 되었습니다.\n");
}
}
@FXML
void selectCheckBox2(ActionEvent event) {
//isSelected()는 선택 되었을 때 true를 돌려주는 메소드 입니다.
//보통 이메소드를 사용하여 입력 여부를 받고 데이터를 전달 받습니다.
if(checkBoxPower.isSelected()) {
//여기에 권력이 선택 되어졌을 때의 처리 구문을 작성 하시면 되겠습니다.
//textArea.setText("");
textArea.setText("권력 가선택 되었습니다.\n");
}else {
textArea.setText("권력이 선택 취소!!!! 되었습니다.\n");
}
}
@FXML
void selectCheckBox3(ActionEvent event) {
//isSelected()는 선택 되었을 때 true를 돌려주는 메소드 입니다.
//보통 이메소드를 사용하여 입력 여부를 받고 데이터를 전달 받습니다.
if(checkBoxNothing.isSelected()) {
//여기에 사랑이 선택 되어졌을 때의 처리 구문을 작성 하시면 되겠습니다.
//textArea.setText("");
textArea.setText("천지에 쓸데 없는 것이 선택 되었습니다.\n");
}else {
textArea.setText("이제 정신을 차리게 !!!! 되었습니다.\n");
}
}
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
}
}
위의 핸들러 예제는 체크박스 선택 시 하나의 체크박스마다
따로 처리 핸들러를 만들었는데
그렇게 하지 않고 하나의 핸들러를 동시에 적용시켜도
상관이 없습니다.
그 외에는 따로 설명할 것이 없는 것 같습니다.
예를 들어서 돈과 명예를 같이 선택했을 때의 처리를 하고 싶은 경우는 "&&" 를
if 문 안에서 사용하시면 되겠습니다.
예제입니다.)
if(checkBoxMoney.isSelected() && checkBoxHonor.isSelected()) {
//여기에 과 명예가 같이 선택 되어졌을 때의 처리 구문을 작성 하시면 되겠습니다.
textArea.setText("돈 과 명예가 한번에 선택 되었습니다.\n");
}
코딩을 해보면 checkBox가 은근히 손이 많이 가는 노가다 입니다.
선택의 경우가 10개가 넘어가고 서로 교차가 되면 좀 머리가 아픕니다.
부디 잘 견디어 내셔서 훌륭한 개발자가 되시길 바랍니다.
세상의 모든 것들은 그 자신을 위해서 존재한다.
728x90
반응형
'자바' 카테고리의 다른 글
자바 자바fx Slider 슬라이더 [북붙따라하기] (0) | 2021.01.03 |
---|---|
자바 자바fx radioButton 라디오버튼 [북붙따라하기] (0) | 2021.01.03 |
자바 문자열을 정수형으로 변경하기 [북붙따라하기] (0) | 2021.01.02 |
자바 javafx comboBox [북붙따라하기] (0) | 2021.01.01 |
자바fx Label , Button , TextField , TextArea [북붙따라하기] (0) | 2020.12.31 |
댓글