2

何らかの理由で、「if」ステートメントで文字列の長さをチェックすると、NullPointerException が発生します。私はおそらくそれを間違ってやっていますが、私は本当に知りません。私が書こうとしているコードは、基本的にボタンのラベルを変更するだけですが、文字列 'label1' の長さが 0 文字である (または設定されていない) 場合に限り、一度しか変更できません。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

         public class Class1 {

public static String label1;


public static String one = ("Hello");
public static String two = ("Goodbye");

public static void main(String args[]) {

    JFrame frame = new JFrame();
    JPanel pane = new JPanel();
    JButton button = new JButton();


    button.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            try {
            if(label1.length() == 0) {

                label1 = one;
                JButton button = (JButton) e.getSource();
                button.setText(label1);
            }
            if(label1.length() < 0) {

                label1 = two;
                JButton button = (JButton) e.getSource();
                button.setText(label1);
            }
        } catch(Exception ex) {
                System.out.println("ERROR");
                ex.printStackTrace();
            }

        }       
    });

    frame.setSize(350, 350);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.add(pane);
    pane.add(button);


     }

 }
4

5 に答える 5

0

いくつかの文字列値を割り当てますlabel

public static String label1 = new String("someString");

NullPointerExceptionまだオブジェクトが割り当てられていないオブジェクト参照と、参照中のオブジェクトに対して何らかのメソッドを呼び出すと取得されます。null

于 2013-06-19T05:15:57.660 に答える
0

label1 は、初期化していないため null です。

label1 = "";

問題を修正する必要があります(null以外のサイズ0になります)

于 2013-06-19T05:17:21.730 に答える