3条回答 默认 最新
- JonsonJiao 2015-06-01 05:59关注
你的核心问题是如何对按钮进行响应,需要看下ActionListener的相关方法。
public class BMI extends JFrame{ private JLabel lblHeight; private JLabel lblWeight; private JLabel lblBMI; private JLabel lblResult; private JButton btnRun; private JPanel pnlMain; private JTextField txtHeight; private JTextField txtWeight; private JTextField txtBMI; private JTextField txtResult; DecimalFormat dformat = new DecimalFormat("#.00"); public BMI(){ lblHeight = new JLabel("身高(米/m)"); txtHeight = new JTextField(10); lblWeight = new JLabel("体重(千克/kg)"); txtWeight = new JTextField(10); lblBMI = new JLabel("健康值(BMI)"); txtBMI = new JTextField(10); lblResult = new JLabel("结果"); txtResult = new JTextField(10); btnRun = new JButton("评估"); pnlMain = new JPanel(); pnlMain.setLayout(null); lblHeight.setBounds(100, 50, 80, 25); txtHeight.setBounds(200, 50, 100, 25); lblWeight.setBounds(100, 80, 80, 25); txtWeight.setBounds(200, 80, 100, 25); lblBMI.setBounds(100, 110, 80, 25); txtBMI.setBounds(200, 110, 100, 25); lblResult.setBounds(100, 170, 80, 25); txtResult.setBounds(200, 170, 100, 25); btnRun.setBounds(150, 140, 80, 25); pnlMain.add(lblHeight); pnlMain.add(txtHeight); pnlMain.add(lblWeight); pnlMain.add(txtWeight); pnlMain.add(lblBMI); pnlMain.add(txtBMI); pnlMain.add(lblResult); pnlMain.add(txtResult); pnlMain.add(btnRun); this.setContentPane(pnlMain); setSize(400,300); setTitle("健康评估"); setVisible(true); setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setLocationRelativeTo(null); btnRun.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if( txtWeight.getText() == null){ JOptionPane.showMessageDialog(null, "身高为空,请输入一个正值身高!"); return; } if( txtHeight.getText() == null){ JOptionPane.showMessageDialog(null, "体重为空,请输入一个正值体重!"); return; } double weight = Double.valueOf(txtWeight.getText()); if(weight <= 0 ){ JOptionPane.showMessageDialog(null, "体重为0,请输入一个正值体重。"); return; } double height = Double.valueOf(txtHeight.getText()); if(height <= 0 ){ JOptionPane.showMessageDialog(null, "身高为0,请输入一个正值身高。"); return; } double bmi = weight/height/height; txtBMI.setText(dformat.format(bmi)); txtResult.setText(getResult(bmi)); } }); } private String getResult(double bmi) { // TODO Auto-generated method stub if(bmi < 18.5){ return "瘦"; }else if(bmi>=18.5 && bmi < 24){ return "正常"; }else{ return "胖"; } } public static void main(String[] args) { new BMI(); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 关于博途V17进行仿真时无法建立连接问题
- ¥15 请问下这个红框里面是什么文档或者记事本编辑器
- ¥15 机器学习教材中的例题询问
- ¥15 求.net core 几款免费的pdf编辑器
- ¥15 为什么安装HCL 和virtualbox之后没有找到VirtualBoxHost-OnlyNetWork?
- ¥15 C# P/Invoke的效率问题
- ¥20 thinkphp适配人大金仓问题
- ¥20 Oracle替换.dbf文件后无法连接,如何解决?(相关搜索:数据库|死循环)
- ¥15 数据库数据成问号了,前台查询正常,数据库查询是?号
- ¥15 算法使用了tf-idf,用手肘图确定k值确定不了,第四轮廓系数又太小才有0.006088746097507285,如何解决?(相关搜索:数据处理)