Java学习笔记(4) 项目搭建实例
2015-04-24 13:24
435 查看
一个小的图形界面程序,进行摄氏度和华氏度的转换。还有输入空的异常抛出问题未解决,过后再修改。
1.Temp.java – –算法部分:温度类的创建,转换公式
2.MyException.java – – 自定义的异常类,从抽象的异常类中继承
3.MyFrame.java – – 图形界面
4.MainProg.java – – 主程序
1.Temp.java – –算法部分:温度类的创建,转换公式
[code]interface Temp{ void calcTemp(); double output(); } class CTemp implements Temp{ private double cTemp, fTemp; public CTemp(double c){ cTemp = c; } public void calcTemp(){ fTemp = cTemp*1.8+32; } public double output(){ return fTemp; } } class FTemp implements Temp{ private double cTemp, fTemp; public FTemp(double f){ fTemp = f; } public void calcTemp(){ cTemp = (fTemp-32)/1.8; } public double output(){ return cTemp; } }
2.MyException.java – – 自定义的异常类,从抽象的异常类中继承
[code]public class MyException extends Exception{ private String message; //存 public MyException(String m){ message=m; } //取 public String outMessage(){ return message; } }
3.MyFrame.java – – 图形界面
[code]import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class MyFrame extends JFrame implements ActionListener{ //面板 JPanel pnlMain=new JPanel(); //标签 JLabel lblInputc=new JLabel("请输入摄氏温度:"); JLabel lblInputf=new JLabel("请输入华氏温度:"); JLabel lblOutputc=new JLabel("转换为摄氏温度:"); JLabel lblOutputf=new JLabel("转换为华氏温度:"); JLabel lblError=new JLabel("错误信息:"); //文本框(参数:列宽) JTextField txtInputc=new JTextField(10); JTextField txtInputf=new JTextField(10); JTextField txtResultc=new JTextField(10); JTextField txtResultf=new JTextField(10); JTextField txtError=new JTextField(10); //按钮 JButton btnCalc=new JButton("计算"); JButton btnCancle=new JButton("取消"); //新建MyException的对象,传入参数 MyException mex=new MyException("输入温度越界"); //构造函数 public MyFrame(){ //设置面板布局(网格布局:6行2列,行、列间距) pnlMain.setLayout(new GridLayout(6,2,5,5)); pnlMain.add(lblInputc); pnlMain.add(lblInputf); pnlMain.add(txtInputc); pnlMain.add(txtInputf); pnlMain.add(lblOutputf); pnlMain.add(lblOutputc); pnlMain.add(txtResultf); pnlMain.add(txtResultc); pnlMain.add(lblError); pnlMain.add(txtError); pnlMain.add(btnCalc); pnlMain.add(btnCancle); //在按钮上加监听器,检测自己是否被点击 btnCalc.addActionListener(this); btnCancle.addActionListener(this); //把面板放到界面上 setContentPane(pnlMain); } //获取文本输入 //异常方法:抛出自己 public String inputTextc() throws MyException{ String str=new String(); str=txtInputc.getText(); if(Double.parseDouble(str)<-273.15){ throw mex; } return str; } public String inputTextf() throws MyException{ String str=new String(); str=txtInputf.getText(); if(Double.parseDouble(str)<-459.67){ throw mex; } return str; } //构造函数之后加入事件方法,包括抽象方法(ActionListener监听器中)的实现 //抛出异常:数字格式异常 throws NumberFormatException public void actionPerformed(ActionEvent ae){ //调用inputText try{ if(ae.getSource()==btnCalc){ //捕获文本框内容并转换为double类型 CTemp cobj=new CTemp(Double.parseDouble(inputTextc())); cobj.calcTemp(); //将计算结果转换为字符串并输出,""+ :强制转换 txtResultf.setText(""+cobj.output()); FTemp fobj=new FTemp(Double.parseDouble(inputTextf())); fobj.calcTemp(); txtResultc.setText(""+fobj.output()); txtError.setText(""); }else if(ae.getSource()==btnCancle){ //取消:清空文本框 txtInputc.setText(""); txtInputf.setText(""); txtResultc.setText(""); txtResultf.setText(""); txtError.setText(""); } }catch(MyException me){ txtError.setText("异常:"+ me.outMessage()); }catch(NumberFormatException nfe){ txtError.setText("数字格式异常:"+ nfe.getMessage()); }catch(Exception e){ txtError.setText("异常:"+ e.getMessage()); } } }
4.MainProg.java – – 主程序
[code]import java.lang.*; import java.io.*; import java.util.*; import javax.swing.*; public class MainProg{ public static void main(String[] args) throws IOException{ MyFrame mf=new MyFrame(); //标题 mf.setTitle("温度转换"); //大小 mf.setSize(400,200); //关闭 mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //可见:显示界面 mf.setVisible(true); } }
相关文章推荐
- Java 学习笔记09:Spring搭建MVC WEB项目
- mybatis学习笔记(一) 项目搭建,helloworld实例
- Java学习笔记(3) 界面设计、项目搭建
- java maven、springmvc、mybatis 搭建简单Web项目学习笔记
- 【Java学习笔记系列】Ubuntu16.04+Tomcat7+Mysql5.7搭建Java Web项目
- NodeJs 学习笔记(一)Wedding 项目搭建
- 【学习笔记】rabbitmq 简易项目搭建
- Java 学习笔记 开发环境搭建JDK+Tomcat+Eclipse
- skynet学习笔记项目搭建(mac环境)
- java学习笔记(2)-环境的搭建
- python+Django+pycharm+mysql 环境搭建及第一个项目学习笔记
- 我的Java学习笔记 -开发环境搭建
- Maven学习笔记(三)—— 使用Maven自带的功能创建Java和JavaWeb项目
- Spring MVC代码实例系列-07:Spring MVC用JavaConfig代替xml搭建项目
- ElasticSearch 6.x 学习笔记:23.Java API之Maven项目
- Java学习笔记51(综合项目:家庭记账系统)
- Jenkins 学习笔记(三):我们的JAVA 项目是这么发布的
- ibatis学习之搭建Java项目
- JAVA学习笔记(11)-- Java类的定义及其实例化
- JAVA学习笔记05——windows下搭建集群及session共享问题