어떤 이유로 'if'문에서 문자열 길이를 검사 할 때 NullPointerException이 발생합니다. 나는 아마 그것을 잘못하고있다. 그러나 나는 정말로 모른다. 기본적으로 쓰려고하는 코드는 버튼의 레이블을 변경하지만 'label1'문자열이 0 자 (또는 설정되지 않음) 인 경우에만 한 번만 변경할 수 있습니다. 당신은 당신이 lable가 intialised되지 lable1
문자열 길이를 검사하면 NullPointerException이 반환됩니까?
if(label1.length() == 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);
}
}
'label1' 문자열을 초기화하지 않았습니다. –
사용하기 전에 label1을 초기화하십시오. public static String label1 = null; –