一个计算BMI的小程序 bmi=体重/(身高*身高)
有2个问题1。这个程序有时候会莫名的跳错误 然后随便删个不相干的符号又好了 怎么回事?Exception in thread "main" java.lang.NoSuchMethodError
at chapt01.BMI.<init>(BMI.java:28)
at chapt01.BMI.main(BMI.java:12)2. 我现在想增加一个英尺和英镑的计算进去 在输入的时候可以输入公斤和米 也可以输入英镑和英尺
kilograms = 0.45 * pounds;
meters = 0.30 * inches;
求修改!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;//////////////////////////////////////////////////////////////class BMI
class BMI extends JFrame {//=============================================== static method main
public static void main(String[] args) {
BMI window = new BMI();
window.setVisible(true);
}
//=============================================== instance variables
// Declare and initialize instance variables that are
// referred to when the program is running.
private JTextField _mField = new JTextField(4); // height
private JTextField _kgField = new JTextField(4); // weight
//private JTextField poundField = new JTextField(4); // height
//private JTextField inchesField = new JTextField(4); // weight
private JTextField _bmiField = new JTextField(4); // BMI
private JTextField messageField = new JTextField(30);
//====================================================== constructor
public BMI() {
//... Create button and add action listener.
JButton bmiButton = new JButton("Compute BMI");
bmiButton.addActionListener(new BMIListener()); //... Set layout and add components.
JPanel content = new JPanel();
content.setLayout(new FlowLayout());
content.add(new JLabel("Weight in kilograms"));
content.add(_kgField);
content.add(new JLabel("Height in meters"));
content.add(_mField);
content.add(bmiButton);
content.add(new JLabel("Your BMI is"));
content.add(_bmiField);
content.add(messageField);
//... Set the window characteristics.
setContentPane(content);
setTitle("Body Mass Index");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack(); // Do layout.
setLocationRelativeTo(null); // Center window.
}
//////////////////////////////////////////// inner class BMIListener
// Inner class is used to access components.
// BMI is converted to int to eliminate excess "accuracy".
private class BMIListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
double kilograms = Double.parseDouble(_kgField.getText());
double meters = Double.parseDouble(_mField.getText());
int bmi = (int)computeBMI(kilograms, meters);
_bmiField.setText("" + bmi);
if(bmi<20)
messageField.setText("BMI is too low for optimum health.");
else if(20<=bmi && bmi<22){
messageField.setText("BMI is low but not a health risk.");
}else if(bmi>=22 && bmi<=25){
messageField.setText("Congratulations for an ideal BMI.");
}else if(bmi>25 && bmi<=27){
messageField.setText("BMI high but not a health risk.");
}else if(bmi>27){
messageField.setText("BMI is too high for optimum health.");
}
}
}
//=========================================== logic method computeBMI
public static double computeBMI(double weight, double height) {
return weight / (height * height);
}
}
有2个问题1。这个程序有时候会莫名的跳错误 然后随便删个不相干的符号又好了 怎么回事?Exception in thread "main" java.lang.NoSuchMethodError
at chapt01.BMI.<init>(BMI.java:28)
at chapt01.BMI.main(BMI.java:12)2. 我现在想增加一个英尺和英镑的计算进去 在输入的时候可以输入公斤和米 也可以输入英镑和英尺
kilograms = 0.45 * pounds;
meters = 0.30 * inches;
求修改!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;//////////////////////////////////////////////////////////////class BMI
class BMI extends JFrame {//=============================================== static method main
public static void main(String[] args) {
BMI window = new BMI();
window.setVisible(true);
}
//=============================================== instance variables
// Declare and initialize instance variables that are
// referred to when the program is running.
private JTextField _mField = new JTextField(4); // height
private JTextField _kgField = new JTextField(4); // weight
//private JTextField poundField = new JTextField(4); // height
//private JTextField inchesField = new JTextField(4); // weight
private JTextField _bmiField = new JTextField(4); // BMI
private JTextField messageField = new JTextField(30);
//====================================================== constructor
public BMI() {
//... Create button and add action listener.
JButton bmiButton = new JButton("Compute BMI");
bmiButton.addActionListener(new BMIListener()); //... Set layout and add components.
JPanel content = new JPanel();
content.setLayout(new FlowLayout());
content.add(new JLabel("Weight in kilograms"));
content.add(_kgField);
content.add(new JLabel("Height in meters"));
content.add(_mField);
content.add(bmiButton);
content.add(new JLabel("Your BMI is"));
content.add(_bmiField);
content.add(messageField);
//... Set the window characteristics.
setContentPane(content);
setTitle("Body Mass Index");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack(); // Do layout.
setLocationRelativeTo(null); // Center window.
}
//////////////////////////////////////////// inner class BMIListener
// Inner class is used to access components.
// BMI is converted to int to eliminate excess "accuracy".
private class BMIListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
double kilograms = Double.parseDouble(_kgField.getText());
double meters = Double.parseDouble(_mField.getText());
int bmi = (int)computeBMI(kilograms, meters);
_bmiField.setText("" + bmi);
if(bmi<20)
messageField.setText("BMI is too low for optimum health.");
else if(20<=bmi && bmi<22){
messageField.setText("BMI is low but not a health risk.");
}else if(bmi>=22 && bmi<=25){
messageField.setText("Congratulations for an ideal BMI.");
}else if(bmi>25 && bmi<=27){
messageField.setText("BMI high but not a health risk.");
}else if(bmi>27){
messageField.setText("BMI is too high for optimum health.");
}
}
}
//=========================================== logic method computeBMI
public static double computeBMI(double weight, double height) {
return weight / (height * height);
}
}
解决方案 »
- java继承问题
- 请问有办法在关闭这个网页的时候弹出个判断框么?
- 新年来了,来个具体点的,什么叫强转,记得是什么叫强转,而不是强转的用法!!!!!
- 老问题回顾,到底创建了几个string对象
- 真的很棘手:SWT的问题
- 初学java在编译时出错不知道怎么改,请大虾指正
- 写数据库连接池的时候保存连接除了用堆(Stack)大家还用什么?
- 小问题,快来捡分了--如何是运行出来的界面上的文字,漂亮一些?--up有分哟!!!!
- java里面的replace函数的用法?是不是没有replace(String source,String des)的方法!
- 请问Java TM Programming Language中的TM(在Java的右角上)是什么意思啊?
- JAVA问题求助
- cmd编译一个helloworld,编译无错误,但是为什么没有显示?
把项目清理下看看呢?