I'created в JLabel, который должен отображать "TextA", если переменная счетчика == -1,
"Текст B", если переменная счетчика == 0 и "TextC", если переменная счетчик == 1.Возможно ли изменение JLabel текста в зависимости от значения переменной?
Я использовал свинг, чтобы создать свой интерфейс, который вы можете увидеть ниже
красный прямоугольник показывает, где JLabel должно быть.
Я попытался создать 3 JLabels и изменить setVisible (Boolean), когда применяется условие значения переменной. Это не сработало, потому что я получил следующее сообщение об ошибке:
Исключение в потоке "главный" java.lang.NullPointerException в tempconverterUI.TempConverter.main (TempConverter.java:354) C: \ Users \ х \ AppData \ Local \ NetBeans \ Cache \ 8.1 \ executor-snippets \ run.xml: 53: Java возвращается: 1
И JLabels нельзя размещать в том же месте в графическом интерфейсе (перекрытие невозможно).
Я попытался использовать jLabel.setText(), чтобы изменить текст, отображаемый в JLabel, всякий раз, когда применяется условие переменной. Я получил аналогичную ошибку с предыдущей (если не то же самое).
Я прочитал несколько других сообщений и исследовал далее, и некоторые люди предложили установить ActionListeners, но я не уверен, что они будут работать с простой переменной, в отличие от компонента в графическом интерфейсе.
Мой код выглядит следующим образом:
package tempconverterUI;
import javax.swing.JOptionPane;
import messageBoxes.UserData;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.WString;
public class TempConverter extends javax.swing.JFrame {
public interface someLib extends Library
{
public int engStart();
public int endStop();
public int engCount();
public WString engGetLastError();
public int engSetAttribute(WString aszAttributeID, WString aszValue);
}
/**
* Creates new form TempConverter
*/
public TempConverter() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
Макет создается здесь, а затем с помощью методов температуры Convertion и функциональности неродственных компонента (который я считаю не уместным в данном случае)
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/**This is where the Login form gets created*/
UserData.popUp();
/**After this the Library functions are called, which will return the variable count value*/
someLib lib = (someLib) Native.loadLibrary("someLib", someLib.class);
int startResult = lib.engStart();
System.out.println(startResult);
if (startResult < 0)
{
System.out.println(lib.engGetLastError());
}
System.out.println(UserData.getAcInput());
int setAtResult = lib.engSetAttribute(new WString("CODE"), UserData.getAcInput());
System.out.println(setAtResult);
if (setAtResult < 0)
{
System.out.println(lib.engGetLastError());
}
И следующий фрагмент кода, из которого я должен управлять JLabel Текст для отображения
int count = lib.engCount();
System.out.println(count);
if (count == -1)
{
System.out.println(lib.engGetLastError());
}
else if (count == 0)
{
}
else
{
}
new TempConverter().setVisible(true);
}
// Variables declaration - do not modify
private javax.swing.JPanel bottomPanel;
private javax.swing.JButton convertButton;
private static javax.swing.JButton button;
private javax.swing.JTextField from;
private javax.swing.JComboBox<String> fromCombo;
private javax.swing.JLabel fromLabel;
private javax.swing.JLabel title;
private javax.swing.JTextField to;
private javax.swing.JComboBox<String> toCombo;
private javax.swing.JLabel toLabel;
private javax.swing.JPanel topPanel;
// End of variables declaration
}
Любая помощь с этим была бы высоко оценена. Если бы вы могли включить простой пример кода, это было бы фантастически, поскольку я новичок в Java (и вообще программировании).
1) См. [Обнаружение/исправление для висячего закрывающего кронштейна кодового блока] (http://meta.stackexchange.com/q/251795/155831) для проблемы, которую я больше не мог беспокоить. 2) Чтобы лучше помочь, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). –
http://stackoverflow.com/questions/15433855/how-to-create-change-listener-for-variable – xenteros
Почему на Земле пользовательские интерфейсы преобразования температуры нуждаются в классах из пакета 'com.sun.jna'? –