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 2024年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日
最近浏览更多
lilong007  LV23 2024年12月23日
鲁一宇  LV5 2024年12月23日
diannian  LV1 2024年9月10日
ranagul  LV2 2024年6月28日
azzzz1  LV2 2024年6月26日
hfffff  LV1 2024年6月3日
微信网友_7008818781589504  LV1 2024年5月25日
xlqb999  LV3 2024年4月29日
22344341  LV2 2024年4月21日
微信网友_6806079376838656  LV1 2024年1月3日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友