package csdn;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import javax.swing.*;
public class WeekTest extends JFrame implements ActionListener{
JLabel  jl1 = new JLabel("输入年份:");
JTextField jtf1 = new JTextField();
JLabel  jl2 = new JLabel("输入月份:");
JTextField jtf2 = new JTextField();
JLabel  jl3 = new JLabel("输入日:");
JTextField jtf3 = new JTextField();
JButton jb1 = new JButton("查询");
JPanel panel = new JPanel(new GridLayout(1,9));
JPanel panel2 = new JPanel(); 
JDialog dialog = null;
JTextArea textarea = null;
DataOutputStream dos = null;
String strdate = null;
public WeekTest(){
panel.add(jl1);
panel.add(jtf1);
panel.add(jl2);
panel.add(jtf2);
panel.add(jl3);
panel.add(jtf3);
panel.add(jb1);
setTitle("查询日期对应星期几");
setBounds(300,400,600,90);
//add(panel);
panel2.add(panel);
this.add(panel2,BorderLayout.EAST);
this.setLayout(new GridLayout(1,7));
pack();
jtf1.addActionListener(this);
jtf2.addActionListener(this);
jtf3.addActionListener(this);
jb1.addActionListener(this);
setVisible(true);
}
public static void main(String[]args){
new WeekTest();
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb1){
if(e.getActionCommand().equals("查询")){
String stryear = jtf1.getText().trim();
String strmonth = jtf2.getText().trim();
String strday = jtf3.getText().trim();
strdate = stryear+"--"+strmonth+"--"+strday;
System.out.println("strdate"+strdate);
dialog = new JDialog(this,"是星期...");
textarea.setText(strdate);
textarea.setLineWrap(true);
textarea.setEditable(false);
dialog.add(textarea);
dialog.pack();
dialog.setResizable(false);
dialog.setBounds(400,400,300,350);
dialog.setVisible(true);
}
}
}
}

解决方案 »

  1.   

    出错语句:textarea.setText(strdate);因为textarea对象未创建,因此会出现空指针异常。
    解决方法:JTextArea textarea = null;改为:JTextArea textarea = new JTextArea();
      

  2.   

    stryear = field1.getText().trim();
    strmonth = field2.getText().trim();
    strday = field3.getText().trim();
    System.out.println(stryear+"stryear");
    if(stryear!=null&&strmonth!=null&&strday!=null){
    year = Integer.parseInt(stryear);//出现以下错误,为什么啊
    month = Integer.parseInt(strmonth);
    day = Integer.parseInt(strday);
    }else{
    return;
    }stryear
    Exception in thread "main" java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:504)
    at java.lang.Integer.parseInt(Integer.java:527)
    at MyCalendar.<init>(MyCalendar.java:83)
    at MyCalendar.main(MyCalendar.java:299)
      

  3.   

    空字符串直接转整形,就报这错。你应该 catch这个 Exception,然后打一个Message。
    或者在转Int之前 判断一下这个字符串是不是整数。
      

  4.   

    Exception in thread "main" java.lang.NumberFormatException: For input string: ""
    这句报错很明显的提示了,你想把一个空字符串转换为数字形式,你觉得可以么?
    所以就报错了,在转换之前加一个非空判断就好了。