Изменение данных при нажатии кнопки

315
25 февраля 2017, 04:33

Работаю с java swing. На мониторе отображаются данные с переменной newDegree (благодаря Thread конвертируются разные данные каждые 5 секунд). Когда кнопка jButton1 нажимается, то данные должны так же постоянно изменяться, но уже отображаться быть в формате фаренгейта far. Пока удалось только сделать следующее: когда нажимается кнопка, то один раз отображается значение far. Однако далее опять newDegree. Задача в том, чтобы отображались значения farдо тих пор пока не будет закрыта программа или нажата другая кнопка.

По сути программа просто выдает изменения температуры в цельсиях и должна при нажатии кнопки выдавать постоянно данные по Фаренгейту.

   private void heatSensor1HeatChanged(system.HeatChangedEvent evt) {                                        
   double newDegree = evt.getCelsius();
   String date = evt.getDate();
   monitor1.setText(String.valueOf(newDegree));
         far = newDegree;
         far = 9*far/5 + 32;
    System.out.println("F=============");
    System.out.println(far);
    System.out.println("F=============");
    System.out.println("C=============");
    System.out.println(newDegree);
    System.out.println("C=============");
}                                       
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    monitor1.setText(String.valueOf(far));
    // TODO add your handling code here:
}  
Answer 1

Я бы сделал следующим образом.

  1. Ввел бы дополнительную private boolean-переменную isTemperatureInCelcium (при значении true температура будет отображаться в цельсии, при false в фаренгейте).
  2. В методе jButton1ActionPerformed по клику на кнопку просто меняется значение этой переменной.

    if (isTemperatureInCelcium) {
        isTemperatureInCelcium = false;
    } else {
        isTemperatureInCelcium = true;
    }
  3. В методе heatSensor1HeatChanged, который, как я понял, запускается каждые несколько секунд просто выполнить проверку следующего рода и менять текст на мониторе в зависимости от значения переменной.

    if (isTemperatureInCelcium) {
        monitor1.setText(String.valueOf(newDegree));
    } else {
        monitor1.setText(String.valueOf(far));
    }
READ ALSO
Деплой сайта, написанного на Java

Деплой сайта, написанного на Java

Пытаюсь развернуть сайт, написанный на Java с использованием фреймворка Vaadin на платном хостингеСделал вcё согласно туториала - скопировал

379
Вопрос как запустить java код на сервере?

Вопрос как запустить java код на сервере?

Задача такая, есть текст с кодом, нужно отправить его через POST на сервер, и виртуальная машина java должна его отработать и вернуть результат...

425
Maven - Запуск java приложения

Maven - Запуск java приложения

ПриветВ Linux я начинающий

222