试题请参照附件
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class YanJun extends JFrame implements ActionListener
{
    //创建一些控件
 JButton b1 = new JButton("Convert");
 JLabel l1 = new JLabel("摄氏温度:");
 JLabel l2 = new JLabel("华氏温度:");
 JTextField t1 = new JTextField(20);
 
 public YanJun() //构造函数对图形初始化
 {
        this.setLayout(new GridLayout(2,2));  //创建布局为网格布局
  this.getContentPane().add(t1); 
  this.getContentPane().add(l1);
  this.getContentPane().add(b1);
  this.getContentPane().add(l2);
  this.setSize(400,300);      //设置大小
  b1.addActionListener(this); //按钮添加监听
  this.setVisible(true);      //设置可见
 }
  public void actionPerformed(ActionEvent ae)  //事件处理
  {
   String str = t1.getText();   //声明一个字符串把文本中的内容交给字符串
            for(int i=0;i            {
             if(str.charAt(i)=='0'||str.charAt(i)=='1'||str.charAt(i)=='2'||str.charAt(i)=='3'||str.charAt(i)=='4'||str.charAt(i)=='5'||str.charAt(i)=='6'||str.charAt(i)=='7'||str.charAt(i)=='8'||str.charAt(i)=='9'||str.charAt(i)=='.'||str.charAt(i)=='-')
             {}
             else
             {
              l2.setText("输入有错误");  //对非法字符作出处理
                 return;
             }
            }
            if(Double.parseDouble(str) < -273.15)  //判断是否数字越界做处理
            {
              l2.setText("输入的数字越界了");
              return;
            }
            double sum = Double.parseDouble(str); //将字符串转成浮点型

            /* 如果输入没有问题作出最后的计算温度 */
            this.l1.setText("摄氏温度为:  "+ sum);
            this.l2.setText("华氏温度为:  "+ sum*1.8+32);
  }
  public static void main(String args[])
  {
   new YanJun();
  }
}