一半不是自己编写的,搞了1个多小时,结果编译还是出错了,请指教

xianngqian 2008-03-06 08:24:59
下面是我抄写的一个摄氏&华氏换算器代码,请看:
代码如下: (附代码)
/**
* @(#)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);
}
}
}
...全文
195 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xianngqian 2008-03-07
  • 打赏
  • 举报
回复
感谢各位的帮忙,问题终于解决了.
特别感谢7楼跟11楼!
:) 谢谢你们!
sky_ccy 2008-03-07
  • 打赏
  • 举报
回复
C:\Program Files\Java\jdk1.6.0_03\lib\ext和
C:\Program Files\Java\jdk1.6.0_03\jre\ext
下把,因为你是外部jar包,兄弟,加油
xianngqian 2008-03-06
  • 打赏
  • 举报
回复
我只是个新手,见笑了,可这个到底怎么解决呢?
納蓝的天空 2008-03-06
  • 打赏
  • 举报
回复
刚入门的
看你们玩
学经验来了……
呵呵
b307077419 2008-03-06
  • 打赏
  • 举报
回复
....................................
xianngqian 2008-03-06
  • 打赏
  • 举报
回复
我的也是jdk6,这段代码基本上是照抄的,书上也没提到Format需要导入啊,到底是什么问题呢.
xianngqian 2008-03-06
  • 打赏
  • 举报
回复
难道就没有简单的办法吗?,我没用过eclipse,我用的是JCreator.
favorite7w 2008-03-06
  • 打赏
  • 举报
回复
Format这个类没有导入嘛,而且这个Format并不是java.util.Format,是自个实现的吧?
yibunengjing 2008-03-06
  • 打赏
  • 举报
回复
拿到我这里跑了一下,发现以下代码有问题:
1,Format.justify('1', thermo.getCelsius(), 0, 2);
Format没有justify这个方法

2,tfFahrenheit.setText(outStr);
tfFahrenheit这个变量没有定义它的类型

第一个问题很有可能是和JDK版本有关,我这里是JDK6
dangjisheng 2008-03-06
  • 打赏
  • 举报
回复
你可以用eclipse导入项目中,就是那个关联应用
xianngqian 2008-03-06
  • 打赏
  • 举报
回复
我弄了半天,下载了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下了,但都是一样的情况,又迷茫了...
ochinchina 2008-03-06
  • 打赏
  • 举报
回复
到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);
}
}
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧