Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2016, 22:38   #1
Алинка_Ы
Пользователь
 
Регистрация: 09.11.2015
Сообщений: 28
По умолчанию GUI

Доброго времени суток. Как на javafx правильно организовать реакцию event при смене radiomenuitem? Нужно, чтобы отображался обычный калькулятор, если такая-то галочка, а если галочка другая, то инженерный. ProgrCalc наследуется от SimpleCalc. В идеале, мы якобы обнаруживаем event(мол поменяли галочку) и потом делаем каст и как-то
перерисовываем все это дело или как можно поменять сцены. В общем подскажите, как это грамотнее сделать. Спасибо за ранее.

Код:
public class Calculator extends Application {


    public static void main(String[] args){
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws Exception {

        VBox root = new VBox();
        root.setStyle("-fx-background: #FFFFFF;");

        root.addEventFilter(ActionEvent.ACTION, new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                if(event.getTarget() instanceof RadioMenuItem) {
                    RadioMenuItem target = (RadioMenuItem) event.getTarget();
                }
            }
        });

        SimpleCalc calculator = new SimpleCalc();

        root.getChildren().addAll(configureMenu(), calculator.formCalc());

        Scene scene = new Scene(root);
        primaryStage.setScene(scene);

        primaryStage.setTitle("Калькулятор");
        primaryStage.setResizable(false);
        primaryStage.show();
    }


    // верхнее меню
    private MenuBar configureMenu() {
        MenuBar bar = new MenuBar();

        bar.setStyle("-fx-background-color: linear-gradient(to bottom," +
                    " #808080 0%,#808080 59%);");

        final Menu view = new Menu("_Вид");
        ToggleGroup groupType = new ToggleGroup();

        RadioMenuItem simple = new RadioMenuItem("Обычный");
        simple.setSelected(true);
        simple.setToggleGroup(groupType);
        simple.setAccelerator(new KeyCodeCombination(KeyCode.DIGIT1, KeyCombination.ALT_DOWN));

        RadioMenuItem engineering = new RadioMenuItem("Инженерный");
        engineering.setToggleGroup(groupType);
        engineering.setAccelerator(new KeyCodeCombination(KeyCode.DIGIT2, KeyCombination.ALT_DOWN));

        RadioMenuItem programmer = new RadioMenuItem("Программист");
        programmer.setToggleGroup(groupType);
        programmer.setAccelerator(new KeyCodeCombination(KeyCode.DIGIT3, KeyCombination.ALT_DOWN));

        groupType.selectedToggleProperty().addListener(new ChangeListener<Toggle>() {
            @Override
            public void changed(ObservableValue<? extends Toggle> observable, Toggle oldValue, Toggle newValue) {
                RadioMenuItem item = (RadioMenuItem) groupType.getSelectedToggle();
                if(item.getText().equals("Обычный")) {
                    SimpleCalc calculator = new SimpleCalc();
                } else {
                    ProgrCalc calculator = new ProgrCalc();
                    VBox root = new VBox();
                    root.setStyle("-fx-background: #FFFFFF;");

                    root.getChildren().addAll(configureMenu(), calculator.formCalc());

                    Scene scene = new Scene(root);
                    Stage primaryStage = new Stage();
                    primaryStage.setScene(scene);
                    primaryStage.close();
                }

            }
        });
Алинка_Ы вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
GUI MovsesIV Общие вопросы C/C++ 7 08.12.2010 16:25
C++ и GUI Kn793 Общие вопросы C/C++ 4 26.07.2010 12:54
C++ и GUI DimOn4Ik Visual C++ 8 24.06.2010 20:22
c++ и gui jodam Общие вопросы C/C++ 7 18.05.2010 11:06
GUI и Си (?) Дырдин Общие вопросы C/C++ 3 15.01.2010 20:39