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 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题