无法更改标签的文本,需要帮助(java、eclipse、windowbuilder)
我现在正在学习用java编程gui,我有一个问题。我正在使用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
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
哇,太快了,非常感谢。你的解决方案非常有效。