无法更改标签的文本,需要帮助(java、eclipse、windowbuilder)

无法更改标签的文本,需要帮助(java、eclipse、windowbuilder),java,eclipse,helper,labels,windowbuilder,Java,Eclipse,Helper,Labels,Windowbuilder,我现在正在学习用java编程gui,我有一个问题。我正在使用Eclipse和Windowbuilder。我只是无法更改标签的文本。我将在下面发布代码和错误消息,如果有人能帮我,我将非常感激。 守则: package gui; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import j

我现在正在学习用java编程gui,我有一个问题。我正在使用Eclipse和Windowbuilder。我只是无法更改标签的文本。我将在下面发布代码和错误消息,如果有人能帮我,我将非常感激。 守则:

package gui;

   import java.awt.BorderLayout;
   import java.awt.EventQueue;

   import javax.swing.JFrame;
   import javax.swing.JPanel;
   import javax.swing.border.EmptyBorder;
   import javax.swing.JLabel;
   import javax.swing.JTextField;
   import javax.swing.JButton;
   import java.awt.event.ActionListener;
   import java.awt.event.ActionEvent;
   import java.awt.event.KeyAdapter;
   import java.awt.event.KeyEvent;
   import com.jgoodies.forms.factories.DefaultComponentFactory;


public class AlteZaehlweise extends JFrame {

private JPanel contentPane;
private JTextField jTFStueckzahl;
private JLabel jLStueckzahl;
private JButton jBtnUmrechnen;
private JLabel jLGros;
private JLabel jLSchock;
private JLabel jLDutzend;
private JLabel jLStueck;
private JButton jBtnEnde;

/**
 * Launch the application.
 */
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
    public void run() {
    try {
        AlteZaehlweise frame = new AlteZaehlweise();
        frame.setVisible(true);
    } catch (Exception e) {
        e.printStackTrace();
    }
    }
});
}

/**
 * Create the frame.
 */
public AlteZaehlweise() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 225);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JLabel jLStueckzahl = new JLabel("Geben Sie eine St\u00FCckzahl an:");
jLStueckzahl.setBounds(10, 11, 181, 14);
contentPane.add(jLStueckzahl);

jTFStueckzahl = new JTextField();
jTFStueckzahl.addKeyListener(new KeyAdapter() {
    public void keyPressed(KeyEvent evt) {
        jTFStueckzahlKeyPressed(evt);
    }
});
jTFStueckzahl.setBounds(10, 31, 86, 20);
contentPane.add(jTFStueckzahl);
jTFStueckzahl.setColumns(10);

JButton jBtnUmrechnen = new JButton("In alte Z\u00E4hlweise umrechnen");
jBtnUmrechnen.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
        jBtnUmrechnenActionPerformed(evt);
    }
});
jBtnUmrechnen.setBounds(159, 31, 203, 20);
contentPane.add(jBtnUmrechnen);

JLabel jLGros = new JLabel("Gros");
jLGros.setBounds(10, 85, 46, 14);
contentPane.add(jLGros);

JLabel jLStock = new JLabel("Schock");
jLStock.setBounds(10, 105, 46, 14);
contentPane.add(jLStock);

JLabel jLDutzend = new JLabel("Dutzend");
jLDutzend.setBounds(10, 125, 46, 14);
contentPane.add(jLDutzend);

JLabel jLStueck = new JLabel("St\u00FCck");
jLStueck.setBounds(10, 145, 46, 14);
contentPane.add(jLStueck);

JButton jBtnEnde = new JButton("Ende");
jBtnEnde.setBounds(205, 141, 89, 23);
contentPane.add(jBtnEnde);
}

protected void jTFStueckzahlKeyPressed(KeyEvent evt) {
// TODO Auto-generated method stub

}

private void jBtnUmrechnenActionPerformed(ActionEvent evt) {
umrechnen();    
}

private void umrechnen () {
int stueck, gros, schock, dutzend;
stueck = Integer.parseInt(jTFStueckzahl.getText());
gros = stueck / 144;
stueck = stueck % 144;
schock = stueck / 60;
stueck  = stueck % 60;
dutzend  = stueck / 12;
stueck = stueck % 12;
jLGros.setText(gros + " Gros");
jLSchock.setText(schock + " Schock");
jLDutzend.setText(dutzend + " Dutzend");
jLStueck.setText(dutzend + " Dutzend");
}
}

错误消息:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at gui.AlteZaehlweise.umrechnen(AlteZaehlweise.java:120)
at gui.AlteZaehlweise.jBtnUmrechnenActionPerformed(AlteZaehlweise.java:108)
at gui.AlteZaehlweise.access$0(AlteZaehlweise.java:107)
at gui.AlteZaehlweise$3.actionPerformed(AlteZaehlweise.java:75)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

当我按下按钮“UMRECHNN”时,我收到此消息。很抱歉,文本是德语,但我希望您能帮助我。

您有GUI小部件的成员(
private JLabel jLGros
等), 但它们从未初始化:在构造函数中创建小部件,但将它们分配给具有相同名称的局部变量。而不是

JLabel jLGros = new JLabel("Gros"); // etc
你需要

jLGros = new JLabel("Gros"); // etc

哇,太快了,非常感谢。你的解决方案非常有效。