Программирование на java - Вопросы по Java

Вопрос Программирование на java

Регистрация
16 Ноя 2012
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
Хочу что бы текст нажатой клавиши прибавлялся к имеющемуся тексту в объекте label, работаю в ScenBilder, добавил label, добавил id: label, добавил метод OnKeyTyped, подскажите пожалуйста что я делаю не так

Код метода HelloController:

public class HelloController {



@FXML

private ResourceBundle resources;



@FXML

private URL location;



@FXML

private Button buton;



@FXML

private Label label;



@FXML

void handleKeyPress(KeyEvent event) {

label.setText(label.getText() + event.getCharacter());

}



@FXML

void initialize() {

}



}

Код класса HelloApplication:

public class HelloApplication extends Application {

@Override

public void start(Stage stage) throws IOException {

FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml"));

Scene scene = new Scene(fxmlLoader.load(), 600, 400);

stage.setTitle("StringTest");

stage.setScene(scene);



stage.show();

}



public static void main(String[] args) {

launch();

}

}



Подскажите пожалуйста что я делаю не так и что надо сделать что бы текст нажатой клавиши добавлялся
 
Регистрация
8 Янв 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
В вашем коде нет ошибки в самом методе обработки нажатия клавиш, но возможно, что проблема связана с неправильной инициализацией или связыванием контроллера с видами. Проверьте следующие моменты:

1. Связывание контроллера с видом:

Убедитесь, что ваш контроллер правильно связан с виджетами в FXML файле. Обычно это делается через @FXML аннотации. Например, в методе initialize() можно сделать следующее:

@FXML
void initialize() {
// Связываем контроллер с виджетом
buton.setOnKeyPressed(event -> handleKeyPress(event));
}


2. Правильная обработка событий:

Проверьте, что обработчик события KeyEvent действительно вызывается при нажатии клавиши. Возможно, вам нужно изменить метод обработки нажатий:

@FXML
void handleKeyPress(KeyEvent event) {
label.setText(label.getText() + event.getCharacter());
}


3. Правильный порядок выполнения кода:

Убедитесь, что код выполняется в нужном порядке. Попробуйте переместить метод handleKeyPress выше метода initialize.

4. Использование SceneBuilder:

Используете ли вы SceneBuilder для создания сцены? Если да, убедитесь, что контроллер связан с виджетами в SceneBuilder.

Также проверьте, что все необходимые зависимости загружены корректно и в правильном порядке.

После проверки всех этих моментов, попробуйте снова запустить приложение и проверить, работает ли добавление текста при нажатии клавиш.
 
Сверху Снизу