下面是我抄写的一个摄氏&华氏换算器代码,请看:
代码如下: (附代码)
/**
 * @(#)DemoFlowLayout.java
 *
 *
 * @author 
 * @version 1.00 2008/3/5
 */
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class DemoFlowLayout extends JFrame {
public static void main(String[] args){
JFrame theFrame = new DemoFlowLayout();
theFrame.setSize(200,125);
theFrame.setVisible(true);
}
//Model class
public class Thermometer{
private double degreesCelsius;
public void setCelsius(double degrees){
degreesCelsius = degrees;
}
public void setFahrenheit(double degrees){
degreesCelsius = (degrees-32.0)*5.0/9.0;

}
public double getCelsius(){
return degreesCelsius;
}
public double getFahrenheit(){
return getCelsius()*9.0/5.0+32.0;

}
}
private Thermometer thermo = new Thermometer();
//////View
//Create controls
private JLabel     lbFahrenhebit = new JLabel("Fahrenheit");
private JTextField tfFahrenhebit = new JTextField ("212",6);
private JLabel     lbCelsius     = new JLabel("Celsius");
private JTextField tfCelsius     = new JTextField("100",6);
private JButton    btFtoC        = new JButton("F to c");
private JButton    btCtoF        = new JButton("C to F");

    public DemoFlowLayout() {
     //Set title
     setTitle("FlowLayout Demo");
     //Create container and layout
     Container contentPane = getContentPane();
     FlowLayout layout = new FlowLayout();
     contentPane.setLayout (layout);
    
     //Add control to container
     contentPane.add (lbFahrenhebit);
     contentPane.add (tfFahrenhebit);
     contentPane.add (lbCelsius);
     contentPane.add (tfCelsius);
     contentPane.add (btFtoC);
     contentPane.add (btCtoF);
    
     //Specify listeners
     btFtoC.addActionListener(new FtoCListener());
     btCtoF.addActionListener(new CtoFListener());
     addWindowListener(new MyWindowAdapter());
    }
    //////////////////////Controller
    //Fahrenbeit button listener
    private class FtoCListener implements ActionListener{
     public void actionPerformed (ActionEvent event){
     String inStr = tfFahrenhebit.getText().trim();
     double f = Double.parseDouble(inStr);
     thermo.setFahrenheit(f);
     String outStr=
     Format.justify ('1',thermo.getCelsius(),0,2);
     tfCelsius.setText (outStr);
     }
    }
    
    //Celsius button listener
    private class CtoFListener implements ActionListener{
     public void actionPerformed (ActionEvent event){
     String inStr = tfCelsius.getText().trim();
     double c =Double.parseDouble(inStr);
     thermo.setCelsius(c);
     String outStr
     =Format.justify ('1',thermo.getFahrenheit(),0,2);
     tfFahrenheit.setText (outStr);
     }
    }
    
    //Window listener
    private class MyWindowAdapter extends WindowAdapter{
     public void WindowClosing (WindowEvent e){
     System.exit(0);
     }
    }
}

解决方案 »

  1.   

    拿到我这里跑了一下,发现以下代码有问题:
    1,Format.justify('1', thermo.getCelsius(), 0, 2);
    Format没有justify这个方法2,tfFahrenheit.setText(outStr);
    tfFahrenheit这个变量没有定义它的类型第一个问题很有可能是和JDK版本有关,我这里是JDK6
      

  2.   

    Format这个类没有导入嘛,而且这个Format并不是java.util.Format,是自个实现的吧?
      

  3.   

    我的也是jdk6,这段代码基本上是照抄的,书上也没提到Format需要导入啊,到底是什么问题呢.
      

  4.   

    到http://faculty.cs.wwu.edu/martin/Software%20Packages/BreezyGUI/Default.htm下载BreezyGUI.jar,并import BreezyGUI.Format,修改89行的错误就可以了。修改后的代码:/**
     * @(#)DemoFlowLayout.java
     *
     *
     * @author 
     * @version 1.00 2008/3/5
     */
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import BreezyGUI.Format;public class DemoFlowLayout extends JFrame {
    public static void main(String[] args){
    JFrame theFrame = new DemoFlowLayout();
    theFrame.setSize(200,125);
    theFrame.setVisible(true);
    }
    //Model class
    public class Thermometer{
    private double degreesCelsius;
    public void setCelsius(double degrees){
    degreesCelsius = degrees;
    }
    public void setFahrenheit(double degrees){
    degreesCelsius = (degrees-32.0)*5.0/9.0;

    }
    public double getCelsius(){
    return degreesCelsius;
    }
    public double getFahrenheit(){
    return getCelsius()*9.0/5.0+32.0;

    }
    }
    private Thermometer thermo = new Thermometer();
    //////View
    //Create controls
    private JLabel     lbFahrenhebit = new JLabel("Fahrenheit");
    private JTextField tfFahrenhebit = new JTextField ("212",6);
    private JLabel     lbCelsius     = new JLabel("Celsius");
    private JTextField tfCelsius     = new JTextField("100",6);
    private JButton    btFtoC        = new JButton("F to c");
    private JButton    btCtoF        = new JButton("C to F");

        public DemoFlowLayout() {
         //Set title
         setTitle("FlowLayout Demo");
         //Create container and layout
         Container contentPane = getContentPane();
         FlowLayout layout = new FlowLayout();
         contentPane.setLayout (layout);
        
         //Add control to container
         contentPane.add (lbFahrenhebit);
         contentPane.add (tfFahrenhebit);
         contentPane.add (lbCelsius);
         contentPane.add (tfCelsius);
         contentPane.add (btFtoC);
         contentPane.add (btCtoF);
        
         //Specify listeners
         btFtoC.addActionListener(new FtoCListener());
         btCtoF.addActionListener(new CtoFListener());
         addWindowListener(new MyWindowAdapter());
        }
        //////////////////////Controller
        //Fahrenbeit button listener
        private class FtoCListener implements ActionListener{
         public void actionPerformed (ActionEvent event){
         String inStr = tfFahrenhebit.getText().trim();
         double f = Double.parseDouble(inStr);
         thermo.setFahrenheit(f);
         String outStr=
         Format.justify ('1',thermo.getCelsius(),0,2);
         tfCelsius.setText (outStr);
         }
        }
        
        //Celsius button listener
        private class CtoFListener implements ActionListener{
         public void actionPerformed (ActionEvent event){
         String inStr = tfCelsius.getText().trim();
         double c =Double.parseDouble(inStr);
         thermo.setCelsius(c);
         String outStr
         =Format.justify ('1',thermo.getFahrenheit(),0,2);
         tfFahrenhebit.setText (outStr);
         }
        }
        
        //Window listener
        private class MyWindowAdapter extends WindowAdapter{
         public void WindowClosing (WindowEvent e){
         System.exit(0);
         }
        }
    }
      

  5.   

    我弄了半天,下载了BreezyGUI.jar,放在C:\Program Files\Java\jdk1.6.0_03\lib,下了,不能用,提示说软件包BreezyGUI不存在,然后又把这个jar放到C:\Program Files\Java\jdk1.6.0_03\jre,C:\Program Files\Java\jre1.6.0_03\lib下了,但都是一样的情况,又迷茫了...
      

  6.   

    你可以用eclipse导入项目中,就是那个关联应用
      

  7.   

    难道就没有简单的办法吗?,我没用过eclipse,我用的是JCreator.
      

  8.   

    C:\Program Files\Java\jdk1.6.0_03\lib\ext和
    C:\Program Files\Java\jdk1.6.0_03\jre\ext
    下把,因为你是外部jar包,兄弟,加油