import java.awt.Color; import java.awt.FlowLayout; import java.awt.Font; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import java.awt.event.WindowStateListener; import java.security.acl.LastOwnerException; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class counter extends JFrame{ JPanel p=new JPanel(); JPanel p2=new JPanel(); JButton B[]=new JButton[20]; JTextField F=new JTextField(4); Action action=new Action(); double result,middle,middle1; String Last="",SLog=""; JTextArea area=new JTextArea(3,7); JScrollPane scrall=new JScrollPane(area); JTextArea area2=new JTextArea(1,10); JTextField F1=new JTextField(15); String S[]= { "请选择","摄氏度到华氏度","摄氏度到开尔文","华氏度到摄氏度","华氏度到开尔文","开尔文到摄氏度","开尔文到华氏度" }; JComboBox Box=new JComboBox(S); public counter() { JTabbedPane pane=new JTabbedPane(); pane.addTab("计算器界面", p); pane.addTab("进制转换界面", p2); initpanel(); GridBagLayout layout=new GridBagLayout(); //p.setLayout(layout); GridBagConstraints c = new GridBagConstraints(); //p.add(F); c.fill = GridBagConstraints.BOTH; c.gridy=0; c.gridwidth=4; layout.setConstraints(F, c); p.add(F); for(int n=0;n<14;n++) { B[n]=new JButton(""+(n+1)); B[n].setBackground(new Color(156,156,255)); c.gridx=n%4; c.gridy=n/4+1; c.weightx=3.0; c.weighty=3.0; c.gridwidth=1; layout.setConstraints(B[n], c); p.add(B[n]); } F.setBackground(Color.orange); B[3].setText("加"); B[4].setText("4"); B[5].setText("5"); B[6].setText("6"); B[8].setText("7"); B[9].setText("8"); B[10].setText("9"); B[12].setText("0"); B[7].setText("减"); B[11].setText("乘"); B[13].setText("除"); B[14]=new JButton(); B[15]=new JButton("%"); B[15].setVisible(false); B[16]=new JButton("回到主程序"); B[17]=new JButton("^"); B[18]=new JButton("."); B[16].setBackground(Color.red); c.gridx=4; c.gridy=1; layout.setConstraints(B[16], c); p.add(B[16]); c.gridy=3; layout.setConstraints(B[15],c); p.add(B[15]); c.gridy=2; layout.setConstraints(B[18], c); p.add(B[18]); c.gridx=2; c.gridy=4; layout.setConstraints(B[17], c); p.add(B[17]); c.gridx=3; c.gridy=4; c.weightx=2; c.gridwidth=2; B[14].setText("等于"); layout.setConstraints(B[14],c); c.gridx=4; c.gridy=0; c.weightx=2.0; layout.setConstraints(scrall, c); p.add(scrall); p.add(B[14]); p.setLayout(layout); F.setFont(new Font("微软雅黑",Font.BOLD,30)); add(pane); addWindowListener(new WindowListener() { @Override public void windowOpened(WindowEvent e) { // TODO 自动生成的方法存根 } @Override public void windowIconified(WindowEvent e) { // TODO 自动生成的方法存根 } @Override public void windowDeiconified(WindowEvent e) { // TODO 自动生成的方法存根 } @Override public void windowDeactivated(WindowEvent e) { // TODO 自动生成的方法存根 } @Override public void windowClosing(WindowEvent e) { // TODO 自动生成的方法存根 } @Override public void windowClosed(WindowEvent e) { // TODO 自动生成的方法存根 } @Override public void windowActivated(WindowEvent e) { // TODO 自动生成的方法存根 } }); initbutton(); setSize(800,900); setVisible(true); } private void initpanel() { JLabel L=new JLabel("输入并选择一个转化形式"); p2.setLayout(new FlowLayout()); p2.add(L); p2.add(F1); p2.add(Box); p2.add(area2); Box.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if(e.getStateChange()==ItemEvent.SELECTED) area2.setText(""+chance(Box.getSelectedIndex())); // TODO 自动生成的方法存根 } }); final JTextField F3=new JTextField(10); p2.add(F3); JButton b1=new JButton("转换为2进制"); p2.add(b1); final JTextArea result=new JTextArea(5,25); p2.add(new JScrollPane(result)); b1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { result.append(tentotwo(Long.valueOf(F3.getText()))+"\n"); // TODO 自动生成的方法存根 } }); p2.add(new JLabel("没有添加的功能:高进制转低进制")); p2.add(new JLabel("没有实现的功能:8,16,2没有添加")); // TODO 自动生成的方法存根 } public void initbutton() { for(int n=0;n<19;n++) { B[n].addActionListener(action); } } public String tentotwo(long num) { System.out.println(num); String S=""; while(num>=2) { S=num%2+S; if(num%2==1) num-=1; num/=2; } if(num==1) S=1+S; return S; } class Action implements ActionListener{ String S=""; @Override public void actionPerformed(ActionEvent e) { SLog+=e.getActionCommand(); if(e.getActionCommand().equals("回到主程序")){ //mainprogram.B1=true; JOptionPane.showMessageDialog(null, "没有找到主程序这只是其中的一个主程序的一部分如果想查看主程序可以在码源天空中搜索"+"\t"+"多功能小程序集合"); } else if(e.getActionCommand().equals("加")||e.getActionCommand().equals("减")|| e.getActionCommand().equals("乘")||e.getActionCommand().equals("除")||e.getActionCommand().equals("等于")|| e.getActionCommand().equals("%")||e.getActionCommand().equals("^")) {middle1=Integer.valueOf(F.getText()); lastcounter(Last,middle1); middle=Double.valueOf(F.getText()); Last=e.getActionCommand(); if(e.getActionCommand().equals("等于")) SLog+=middle; System.out.println(SLog); F.setText(""); S=""; if(Last.equals("等于")) { SLog+="\n"; area.setText(SLog); area.setFont(new Font("微软雅黑",Font.BOLD,20)); } // if(e.getActionCommand().equals("加")) { // Last="加"; // middle=Integer.valueOf(F.getText()); // // F.setText(""); // S=""; // } // if(e.getActionCommand().equals("减")) { // Last="减"; // middle=Integer.valueOf(F.getText()); // // F.setText(""); // S=""; // } // if(e.getActionCommand().equals("乘")) { // Last="乘"; // middle=Integer.valueOf(F.getText()); // // F.setText(""); // S=""; // } // if(e.getActionCommand().equals("除")) { // Last="除"; // middle=Integer.valueOf(F.getText()); // // F.setText(""); // S=""; // } // if(e.getActionCommand().equals("等于")) { // Last="等于"; // middle=Integer.valueOf(F.getText()); // // // } // }else { S+=e.getActionCommand(); F.setText(S); } } } public void lastcounter(String last,double num) { if(last.equals("加")) { middle+=num; F.setText(""+middle); //SLog+=middle; middle=0; } if(last.equals("减")) { middle-=num; F.setText(""+middle); //SLog+=middle; middle=0; } if(last.equals("乘")) { middle*=num; F.setText(""+middle); //SLog+=middle; middle=0; } if(last.equals("除")) { if(num==0) { JOptionPane.showMessageDialog(null, "分母不能为0请重新输入"); return; } middle/=num; F.setText(""+middle); SLog+=middle; middle=0; } if(last.equals("^")) { middle=Math.pow(middle,num); F.setText(""+middle); SLog+=middle; middle=0; } } public static void main(String[] args) { counter c=new counter(); c.setDefaultCloseOperation(DISPOSE_ON_CLOSE); // TODO 自动生成的方法存根 } public String chance(int I) { int middle=0; String S=""; middle=Integer.valueOf(((F1.getText().equals("")? "0" : F1.getText()))); if(I==1) S=C1((double) middle); if(I==2) { S=C2(middle); } if(I==3) { S=C3(middle); } if(I==4) { S=C4(middle); } if(I==5) { S=C5(middle); } if(I==6) { S=C6(middle); } return S; } public String C1(Double double1) { return ""+(double1*1.8+32); } public String C2(int I) { return ""+(273.15+I); } public String C3(int I) { return ""+(1.8*I+32); } public String C4(int I) { return ""+(Double.valueOf(C2(I))+273.15); } public String C5(int I) { return ""+(I-273.15); } public String C6(int I) { return ""+(C1(Double.valueOf(C5(I)))); } }
最近下载更多
微信网友_6806079376838656 LV1
1月3日
329217 LV1
2023年4月8日
Aaaddb LV1
2022年11月28日
17798830 LV14
2022年1月25日
bobbychan LV1
2021年12月9日
zmzmzmkit LV5
2021年10月24日
林距离 LV1
2021年7月18日
Demo1111 LV30
2021年5月28日
9842455525 LV1
2020年7月4日
zhang666 LV8
2019年12月20日
最近浏览更多
微信网友_6806079376838656 LV1
1月3日
b5438b LV7
2023年12月20日
gk_xmj LV1
2023年12月6日
tyw555
2023年11月14日
暂无贡献等级
yangxb2 LV10
2023年10月20日
四十四十 LV3
2023年10月18日
lmml2307831267 LV2
2023年6月25日
微信网友_6533174388953088 LV1
2023年6月24日
zgxqna
2023年6月1日
暂无贡献等级
llxxtt LV2
2023年5月14日