交个作业,交个作业
题目:
单位换算。请设计并编写小应用程序,要求实现至少5对单位之间的相互换算,
例如:镑与公斤之间换算:党输入12磅时,程序可以自动换算成5.346公斤
代码:
匿名内部类的:
import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class Translation extends JFrame{ private JTextField [] t = { new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6) }; //这里想要什么换算可以自己换 private JLabel [] lb = { new JLabel("公斤"), new JLabel("斤"), new JLabel("米"), new JLabel("厘米"), new JLabel("元"), new JLabel("毛"), new JLabel("小时"), new JLabel("分钟"), new JLabel("分钟"), new JLabel("秒") }; private JButton [] b = { new JButton("="), new JButton("="), new JButton("="), new JButton("="), new JButton("=") }; public Translation(){ init(); } public void showView(){ setVisible(true); } public void init(){ Container c = getContentPane(); c.setLayout(new FlowLayout()); //可以自行调试出,符合自己要求的大小 setSize(300,300); //按照格式把各个符号加入 for(int i = 0 ; i<5 ; i++){ c.add(t[2*i]); c.add(lb[2*i]); c.add(b[i]); c.add(t[2*i+1]); c.add(lb[2*i+1]); } //因为每一种的换算方法会不一样,所以直接用匿名内部类了,各种换算方法可以自己调 b[0].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ t[1].setText(Double.parseDouble(t[0].getText())*2 + ""); } }); b[1].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ t[3].setText(Double.parseDouble(t[2].getText())*10 + ""); } }); b[2].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ t[5].setText(Double.parseDouble(t[4].getText())*10 + ""); } }); b[3].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ t[7].setText(Double.parseDouble(t[6].getText())*60 + ""); } }); b[4].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ t[9].setText(Double.parseDouble(t[8].getText())*60 + ""); } }); } public static void main(String[] args) { Translation tt =new Translation(); tt.showView(); } }
外部的:
import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class trans extends JApplet implements ActionListener{ private JTextField [] t = { new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6), new JTextField(6) }; //这里想要什么换算可以自己换 private JLabel [] lb = { new JLabel("公斤"), new JLabel("斤"), new JLabel("米"), new JLabel("厘米"), new JLabel("元"), new JLabel("毛"), new JLabel("小时"), new JLabel("分钟"), new JLabel("分钟"), new JLabel("秒") }; private JButton [] b = { new JButton("="), new JButton("="), new JButton("="), new JButton("="), new JButton("=") }; public void init(){ Container c = getContentPane(); c.setLayout(new FlowLayout()); //可以自行调试出,符合自己要求的大小 setSize(300,300); //按照格式把各个符号加入 for(int i = 0 ; i<5 ; i++){ c.add(t[2*i]); c.add(lb[2*i]); c.add(b[i]); c.add(t[2*i+1]); c.add(lb[2*i+1]); } for(int i = 0 ; i<5 ; i++){ b[i].addActionListener(this); } } public void actionPerformed(ActionEvent e){ JButton n = new JButton(); n = (JButton) e.getSource(); if(n == b[0]){ t[1].setText(Double.parseDouble(t[0].getText())*2 + ""); } else if(n == b[1]){ t[3].setText(Double.parseDouble(t[2].getText())*10 + ""); } else if(n == b[2]){ t[5].setText(Double.parseDouble(t[4].getText())*10 + ""); } else if(n == b[3]){ t[7].setText(Double.parseDouble(t[6].getText())*60 + ""); } else if(n == b[4]){ t[9].setText(Double.parseDouble(t[8].getText())*60 + ""); } } }