From 8df7a1fa8342b7c2bba0dbcc594160633e171da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=B6=E7=A5=BA?= Date: Thu, 10 Jun 2021 17:27:16 +0800 Subject: [PATCH 1/5] my first commit --- src/java2020spring/Test.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/java2020spring/Test.java b/src/java2020spring/Test.java index fc09c19..1e7ce9c 100644 --- a/src/java2020spring/Test.java +++ b/src/java2020spring/Test.java @@ -3,7 +3,7 @@ package java2020spring; public class Test { public static void main(String[] args) { - System.out.println("Hello world!"); + System.out.println("Hello git!"); } -- Gitee From 5cdf99f26723a994e2407c88bc96285072297fcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=B6=E7=A5=BA?= Date: Thu, 10 Jun 2021 17:33:16 +0800 Subject: [PATCH 2/5] calculator 1.0 --- src/java2020spring/JSQ.java | 415 ++++++++++++++++++++++++++++++++++++ src/java2020spring/ZHQ.java | 187 ++++++++++++++++ 2 files changed, 602 insertions(+) create mode 100644 src/java2020spring/JSQ.java create mode 100644 src/java2020spring/ZHQ.java diff --git a/src/java2020spring/JSQ.java b/src/java2020spring/JSQ.java new file mode 100644 index 0000000..14694a3 --- /dev/null +++ b/src/java2020spring/JSQ.java @@ -0,0 +1,415 @@ +package java2020spring; + +import java.awt.*; +import java.awt.event.*; +import javax.swing.*; +import java.awt.event.KeyEvent; +import java.awt.event.InputEvent; + +public class JSQ extends Frame implements ActionListener,WindowListener{ +private Container container; +private GridBagLayout layout; +private GridBagConstraints constraints; +private JTextField textField; +private String getbutton; +private double result; +private boolean start; +private JMenuBar menubar; +private JMenuItem menu_exit; +private JMenuItem menu2_ejz; +private JMenuItem menu2_bjz; +private Dialog dialog; +private Label label_dialog; +private JButton button0; +private JButton button1; +private JButton button2; +private JButton button3; +private JButton button4; +private JButton button5; +private JButton button6; +private JButton button7; +private JButton button8; +private JButton button9; +private JButton button_plus; +private JButton button_minus; +private JButton button_multiply; +private JButton button_divide; +private JButton button_point; +private JButton button_equal; +private JButton button_log; +private JButton button_sin; +private JButton button_cos; +private JButton button_tan; +private JButton button_exp; +private JButton button_sqrt; +private JButton button_minussign; +private JButton button_Delete; +private JButton button_CE; + +/**设置计算器布局&设置监听器**/ +public JSQ() +{ + super( "李家祺的计算器" ); + this.setLocation( 100,100 ); + this.setSize(400,300); + this.setResizable(true); + this.setLayout(new GridLayout( 7,2)); + this.addMenu(); + textField = new JTextField(50); + textField.setBackground(new Color(230,240,250)); + textField.setForeground(new Color(30,60,90)); + textField.setText("0"); + textField.setFont(new Font("黑体",Font.BOLD,22)); + textField.setEditable(false); + this.setResizable(false); + this.add( textField ); + start = true; + result = 0; + getbutton = "="; + + JPanel panel0 = new JPanel(); + panel0.setLayout( new GridLayout( 1,4,4,4 ) ); + JPanel panel1 = new JPanel(); + panel1.setLayout( new GridLayout( 1,5,4,4 ) ); + this.add( panel1 ); + button_sqrt = new JButton( "√" ); + button_sqrt.setForeground(new Color(30,60,90)); + button_minussign = new JButton( "-" ); + button_minussign.setForeground(new Color(30,60,90)); + button_exp = new JButton( "exp" ); + button_exp.setForeground(new Color(30,60,90)); + button_Delete = new JButton( "Delete"); + button_Delete.setForeground(new Color(30,60,90)); + button_CE = new JButton( "CE" ); + button_CE.setForeground(new Color(30,60,90)); + + JPanel panel2 = new JPanel(); + panel2.setLayout( new GridLayout( 1,5,4,4 ) ); + this.add( panel2 ); + button7 = new JButton( "7" ); + button7.setBackground(new Color(230,240,250)); + button8 = new JButton( "8" ); + button8.setBackground(new Color(230,240,250)); + button9 = new JButton( "9" ); + button9.setBackground(new Color(230,240,250)); + button_log = new JButton( "log" ); + button_log.setForeground(new Color(30,60,90)); + button_divide = new JButton( "/" ); + button_divide.setForeground(new Color(30,60,90)); + + JPanel panel3 = new JPanel(); + panel3.setLayout( new GridLayout(1,5,4,4) ); + this.add( panel3 ); + button4 = new JButton( "4" ); + button4.setBackground(new Color(230,240,250)); + button5 = new JButton( "5" ); + button5.setBackground(new Color(230,240,250)); + button6 = new JButton( "6" ); + button6.setBackground(new Color(230,240,250)); + button_tan = new JButton( "tan" ); + button_tan.setForeground(new Color(30,60,90)); + button_multiply = new JButton( "*" ); + button_multiply.setForeground(new Color(30,60,90)); + + JPanel panel4=new JPanel(); + panel4.setLayout( new GridLayout( 1,5,4,4 ) ); + this.add(panel4); + button1 = new JButton( "1" ); + button1.setBackground(new Color(230,240,250)); + button2 = new JButton( "2" ); + button2.setBackground(new Color(230,240,250)); + button3 = new JButton( "3" ); + button3.setBackground(new Color(230,240,250)); + button_cos = new JButton( "cos"); + button_cos.setForeground(new Color(30,60,90)); + button_minus = new JButton( "-" ); + button_minus.setForeground(new Color(30,60,90)); + + JPanel panel5 = new JPanel(); + panel5.setLayout( new GridLayout( 1,5,4,4 ) ); + this.add( panel5 ); + button_point=new JButton( "." ); + button_point.setBackground(new Color(230,240,250)); + button0 = new JButton( "0" ); + button0.setBackground(new Color(230,240,250)); + button_equal = new JButton( "=" ); + button_equal.setForeground(new Color(30,60,90)); + button_sin = new JButton( "sin" ); + button_sin.setForeground(new Color(30,60,90)); + button_plus = new JButton( "+" ); + button_plus.setForeground(new Color(30,60,90)); + + panel1.add( button_sqrt ); + panel1.add( button_minussign ); + panel1.add( button_exp ); + panel1.add( button_Delete ); + panel1.add( button_CE ); + panel2.add( button7 ); + panel2.add( button8 ); + panel2.add( button9 ); + panel2.add( button_log ); + panel2.add( button_divide ); + panel3.add( button4 ); + panel3.add( button5 ); + panel3.add( button6 ); + panel3.add( button_tan ); + panel3.add( button_multiply ); + panel4.add( button1 ); + panel4.add( button2 ); + panel4.add( button3 ); + panel4.add( button_cos ); + panel4.add( button_minus ); + panel5.add( button_point ); + panel5.add( button0 ); + panel5.add( button_equal ); + panel5.add( button_sin ); + panel5.add( button_plus) ; + + button_sqrt.addActionListener( this ); + button_minussign.addActionListener( this ); + button_exp.addActionListener( this ); + button_Delete.addActionListener( this ); + button_CE.addActionListener( this ); + button7.addActionListener( this ); + button8.addActionListener( this ); + button9.addActionListener( this ); + button_log.addActionListener( this ); + button_divide.addActionListener( this ); + button4.addActionListener( this ); + button5.addActionListener( this ); + button6.addActionListener( this ); + button_tan.addActionListener( this ); + button_multiply.addActionListener( this ); + button1.addActionListener( this ); + button2.addActionListener( this ); + button3.addActionListener( this ); + button_cos.addActionListener( this ); + button_minus.addActionListener( this ); + button0.addActionListener( this ); + button_point.addActionListener( this ); + button_equal.addActionListener( this ); + button_sin.addActionListener( this ); + button_plus.addActionListener( this ); +/**注册窗口监听器**/ + this.addWindowListener( new WinClose() ); + this.setVisible( true ); + } +/**菜单的添加**/ + private void addMenu(){ + JMenuBar menubar = new JMenuBar(); + this.add( menubar ); + JMenu menu1 = new JMenu( "功能" ); + JMenu menu2 = new JMenu( "进制转换"); + + JMenuItem menu1_exit = new JMenuItem( "关闭" ,new ImageIcon("a.jpg")); + menu1_exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK)); + menu1_exit.addActionListener( this ); + JMenuItem menu2_ejz = new JMenuItem( "二进制" ); + menu2_ejz.addActionListener( this ); + JMenuItem menu2_ternary=new JMenuItem("三进制"); + menu2_ternary.addActionListener(this); + JMenuItem menu2_bjz = new JMenuItem("八进制"); + menu2_bjz.addActionListener( this ); + JMenuItem menu2_sljz = new JMenuItem("十六进制"); + menu2_sljz.addActionListener( this ); + JMenu menu3 =new JMenu("关于"); + JMenuItem menu3_developer=new JMenuItem("开发者"); + menu3_developer.addActionListener(this); + JMenuItem menu3_developmentTime=new JMenuItem("开发时间"); + menu3_developmentTime.addActionListener(this); + dialog =new Dialog(this,"",true); + dialog.setSize(380,100); + label_dialog =new Label("",Label.CENTER); + dialog.add(label_dialog); + dialog.addWindowListener(this); + JMenuItem m4_unitconversion = new JMenuItem( "单位转换器",new ImageIcon("b.jpg") ); + m4_unitconversion.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK)); + m4_unitconversion .addActionListener( this ); + + menu1.add(m4_unitconversion); + menu1.add( menu1_exit ); + menubar.add( menu1 ); + menu2.add( menu2_ejz ); + menu2.add(menu2_ternary); + menu2.add( menu2_bjz ); + menu2.add( menu2_sljz ); + menubar.add( menu2 ); + menu3.add(menu3_developer); + menu3.add(menu3_developmentTime); + menubar.add(menu3); +} + +/**按钮的单击事件处理方法**/ + public void actionPerformed(ActionEvent e){ + if( + e.getSource().equals( button1 )||e.getSource().equals( button2 )|| + e.getSource().equals( button3 )||e.getSource().equals( button4 )|| + e.getSource().equals( button5 )|| e.getSource().equals( button6 )|| + e.getSource().equals( button7 )|| e.getSource().equals( button8 )|| + e.getSource().equals( button9 ) ||e.getSource().equals( button0 )|| + e.getSource().equals( button_point )||e.getSource().equals( button_minussign)|| + e.getSource().equals( button_CE )||e.getSource().equals( button_Delete ) + ) + { + String input = e.getActionCommand(); + if (start) + { + textField.setText(""); + start = false; + if( input.equals( "-" ) ) + textField.setText( textField.getText()+ "-" ); + } + if( !input.equals( "-" ) ) + { + String str = textField.getText(); + if( input.equals( "Delete") ) + { + if( str.length() > 0 ) + textField.setText( str.substring(0,str.length() - 1 ) ); + } + else if( input.equals( "CE" ) ) + { + textField.setText( "0"); + start = true; + } + else + textField.setText( textField.getText() + input ); + } + } + else if ( e.getActionCommand()=="二进制") + { + int n = Integer.parseInt( textField.getText() ); + textField.setText(Integer.toBinaryString(n)); + + } + else if(e.getActionCommand()=="三进制") + { + int n=Integer.parseInt(textField.getText()); + textField.setText(Integer.toString(n,3)); + } + else if ( e.getActionCommand() == "八进制" ) + { + int n = Integer.parseInt( textField.getText() ); + textField.setText( Integer.toOctalString( n ) ); + } + else if ( e.getActionCommand() == "十六进制" ) + { + int n = Integer.parseInt( textField.getText() ); + textField.setText( Integer.toHexString( n ) ); + } + + else if(e.getActionCommand()=="单位转换器") + { + this.dispose(); + ZHQ un=new ZHQ(); + un.main(null); + } + else if ( e.getActionCommand() == "关闭" ) + { + System.exit( 0 ); + } + + else if(e.getActionCommand()=="开发者") + { + label_dialog.setText("202025710311李家祺"); + dialog.setLocation( 400,300 ); + dialog.setVisible( true ); + } + + else if(e.getActionCommand()=="开发时间") + { + label_dialog.setText( "2021年6月11号" ); + dialog.setLocation( 400,300 ); + dialog.setVisible( true ); + } + + else + { + String command = e.getActionCommand(); + if( start ) + { + getbutton = command; + } + else + { + calculate( Double.parseDouble( textField.getText() ) ); + getbutton = command; + start = true; + } + } +} +/**运算**/ + public void calculate( double x ) + { + double a = 0; + if ( getbutton.equals( "+" ) ) result=result+x; + else if (getbutton.equals( "-" ) ) result=result-x; + else if ( getbutton.equals( "*" ) ) result=result*x; + else if ( getbutton.equals( "/" ) ) + {if (result==0) result = 000; //如果被除数为0,则显示异常 + else result=result*x;} + else if ( getbutton.equals( "=" ) ) result=x; + else if ( getbutton.equals( "√" ) ) + { + if (a>=0) { + a = Math.sqrt(x); + result = a;} + else textField.setText("请输入一个非负数"); + } + else if ( getbutton.equals( "exp" ) ) + { + a = Math.exp(x); + result = a; + } + else if ( getbutton.equals( "log" ) ) + { + a = Math.log(x); + result = a; + } + else if ( getbutton.equals( "tan" ) ) + { + a = Math.tan(x); + result = a; + } + else if ( getbutton.equals( "cos" ) ) + { + a = Math.cos(x); + result = a; + } + else if ( getbutton.equals( "sin" ) ) + { + a = Math.sin(x); + result = a; + } + textField.setText(""+ result ); + } + +/**隐藏对话框**/ + public void windowClosing( WindowEvent e ){ + if( e.getSource() == dialog ) + dialog.setVisible( false ); + else + System.exit(0); + } + + public void windowOpened( WindowEvent e ) {} + public void windowActivated( WindowEvent e ) {} + public void windowDeactivated( WindowEvent e ) {} + public void windowClosed( WindowEvent e ) {} + public void windowIconified( WindowEvent e ) {} + public void windowDeiconified( WindowEvent e ) {} +public static void main( String args[] ) + {JSQ calculator = new JSQ();} +} +/**单击窗口关闭按钮时触发并执行实现窗口监听器接口中的方法**/ +class WinClose implements WindowListener{ + public void windowClosing( WindowEvent e ){ + System.exit( 0 ); + } + public void windowOpened( WindowEvent e ){ } + public void windowActivated( WindowEvent e ){} + public void windowDeactivated( WindowEvent e){ } + public void windowClosed( WindowEvent e ){ } + public void windowIconified( WindowEvent e ){ } + public void windowDeiconified( WindowEvent e ){ } +} \ No newline at end of file diff --git a/src/java2020spring/ZHQ.java b/src/java2020spring/ZHQ.java new file mode 100644 index 0000000..10c8471 --- /dev/null +++ b/src/java2020spring/ZHQ.java @@ -0,0 +1,187 @@ +package java2020spring; + +import javax.swing.*; +import javax.swing.event.*; +import java.awt.*; +import java.awt.event.*; + +public class ZHQ extends JFrame { + public static void main(String[] args){ + EventQueue.invokeLater(new Runnable(){public void run(){}}); +} +/**设置窗口大小**/ + private final int WIDTH = 400, HEIGHT = 300; +/**设置窗口布局**/ + private JLabel InputUnit=new JLabel("输入单位"); + private JComboBox whichIn=new JComboBox(new String[]{"",""}); + private JLabel InputNum=new JLabel("输入数值"); + private JTextField Default=new JTextField("1"); + private JLabel OutputUnit=new JLabel("输出单位"); + private JLabel showResult=new JLabel("显示结果"); + private JLabel txtResult=new JLabel(" "); + private JComboBox whichOut=new JComboBox(new String[]{"",""}); + private JButton goTrans = new JButton("转换"); + private JButton goClear = new JButton("清空"); + private JButton goreturn=new JButton("返回"); + private JRadioButton rdLeng = new JRadioButton("长度转换"); + private JRadioButton rdWeig = new JRadioButton("质量转换"); + private String [] lengthUnit={"米", "分米", "厘米", "毫米"}; + private String [] weighthUnit={"吨", "千克", "克", "斤"}; + +/**指定窗口**/ + public ZHQ(){ + super("单位转换器 "); + this.setSize(WIDTH, HEIGHT); + this.setLocation( 300,200 ); + this.setResizable(true); //允许窗口调整大小 + this.setLayout(null); + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + ButtonGroup group = new ButtonGroup(); + group.add(rdLeng); + group.add(rdWeig); + this.getContentPane().add(rdLeng); + this.getContentPane().add(rdWeig); + this.getContentPane().add(goTrans); + this.getContentPane().add(goClear); + this.getContentPane().add(goreturn); + this.getContentPane().add(InputNum); + this.getContentPane().add(Default); + this.getContentPane().add(InputUnit); + this.getContentPane().add(whichIn); + this.getContentPane().add(showResult); + this.getContentPane().add(txtResult); + this.getContentPane().add(OutputUnit); + this.getContentPane().add(whichOut); +/**字体**/ + Default.setFont(new Font("宋体",Font.BOLD,20)); + InputUnit.setFont(new Font("宋体",Font.BOLD,15)); + InputNum.setFont(new Font("宋体",Font.BOLD,15)); + OutputUnit.setFont(new Font("宋体",Font.BOLD,15)); + showResult.setFont(new Font("宋体",Font.BOLD,15)); + goTrans.setFont(new Font("宋体",Font.BOLD,15)); + goClear.setFont(new Font("宋体",Font.BOLD,15)); +/**按钮颜色**/ + goreturn.setForeground(new Color(30,60,90)); + goClear.setForeground(new Color(30,60,90)); + goTrans.setForeground(new Color(30,60,90)); + whichIn.setForeground(new Color(30,60,90)); + whichOut.setForeground(new Color(30,60,90)); + + this.setVisible(true); + this.doLayout(); + goTrans.addActionListener(new ActionListener(){ + public void actionPerformed(ActionEvent e){ + doConvert(); + } + }); + goClear.addActionListener(new ActionListener(){ + public void actionPerformed(ActionEvent e){ + Default.setText("0"); + txtResult.setText("0"); + } + }); +/**设置监听器**/ + goreturn.addActionListener(new ActionListener(){ + public void actionPerformed(ActionEvent e){ + JSQ calculator = new JSQ(); + boolean flase = false; + setVisible(flase); + } + }); + rdLeng.addActionListener(new ActionListener(){ + public void actionPerformed(ActionEvent e){ + whichIn.setModel(new DefaultComboBoxModel(lengthUnit)); + whichOut.setModel(new DefaultComboBoxModel(lengthUnit)); + } + }); + rdWeig.addActionListener(new ActionListener(){ + public void actionPerformed(ActionEvent e){ + whichIn.setModel(new DefaultComboBoxModel(weighthUnit)); + whichOut.setModel(new DefaultComboBoxModel(weighthUnit)); + } + }); + rdLeng.setSelected(true); + whichIn.setModel(new DefaultComboBoxModel(lengthUnit)); + whichOut.setModel(new DefaultComboBoxModel(weighthUnit)); + } + final int offX=100; + public void doLayout(){ + super.doLayout(); +/**选择长度或质量单位转换**/ + rdLeng.setBounds(offX, 15, 100, 20); + rdWeig.setBounds(rdLeng.getX()+rdLeng.getWidth()+5, 15,100, 20); +/**各框的长宽**/ + InputUnit.setBounds(offX, rdLeng.getY()+rdLeng.getHeight()+5, 80, 20); + whichIn.setBounds(InputUnit.getX()+InputUnit.getWidth()+5, InputUnit.getY(), 80, 20); + InputNum.setBounds(offX, InputUnit.getY()+InputUnit.getHeight()+5, 80, 20); + Default.setBounds(InputNum.getX()+InputNum.getWidth()+5, Default.getY()+17, 80, 20); + OutputUnit.setBounds(offX, InputNum.getY()+InputNum.getHeight()+30, 80, 20); + whichOut.setBounds(OutputUnit.getX()+OutputUnit.getWidth()+5, OutputUnit.getY(), 80, 20); + showResult.setBounds(offX, whichOut.getY()+whichOut.getHeight()+5, 80, 20); + txtResult.setBounds(showResult.getX()+showResult.getWidth()+5, showResult.getY(), 100, 20); +/**框水平居中**/ + int w=getWidth (); + int x=(w-70*2-5)/2; +/**"转换"按钮的长宽**/ + goTrans.setBounds(x, showResult.getY()+showResult.getHeight()+30, 70, 30); +/**"清空"按钮的长宽**/ + goClear.setBounds(goTrans.getX()+goTrans.getWidth()+3, goTrans.getY(), 70, 30); + goreturn.setBounds(20,10, 70, 30); + } + public void doConvert(){ + double v=0; + try{ + v= Double.parseDouble(Default.getText()); + } + catch(Exception ex){ + Default.setText("???"); + return; + } +/**长度单位转换(以"米"为标准单位)**/ + if(rdLeng.isSelected()){ + switch(whichIn.getSelectedIndex()){ + case 0: break; + case 1: v=v/10; break; + case 2: v=v/100; break; + case 3: v=v/1000;break; + default: return; + } + switch(whichOut.getSelectedIndex()){ + case 0: break; + case 1: v=v*10; break; + case 2: v=v*100; break; + case 3: v=v*1000; break; + default:return; + } + if(v<0.01){ + txtResult.setText(String.format("%2.3f", v)); + } + else{ + txtResult.setText(String.format("%2.3f", v)); + } + } +/**质量单位转换(以"千克"为标准单位)**/ + else{ + switch(whichIn.getSelectedIndex()){ + case 0:v=v*1000;break; + case 1: break; + case 2:v=v/1000;break; + case 3:v=v/2; break; + default: return; + } + switch(whichOut.getSelectedIndex()){ + case 0:v=v/1000;break; + case 1: break; + case 2:v=v*1000;break; + case 3:v=v*2; break; + default: return; + } + if(v<0.01){ + txtResult.setText(String.format("%2.3f",v)); + } + else{ + txtResult.setText(String.format("%2.3f",v)); + } + } + } + } \ No newline at end of file -- Gitee From 7810c98b41aa9551e813607cd6c1e7df8c82e88c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=B6=E7=A5=BA?= Date: Thu, 10 Jun 2021 18:51:07 +0800 Subject: [PATCH 3/5] =?UTF-8?q?calculator=202.0=20(=E5=AF=B9=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E6=96=B9=E6=B3=95=E7=9A=84=E6=B7=BB=E5=8A=A0=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E7=9B=91=E5=90=AC=E5=99=A8=E8=AE=BE=E7=BD=AE=E4=BD=9C?= =?UTF-8?q?=E4=BA=86=E4=BF=AE=E6=94=B9,=E5=B9=B6=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=E6=B3=A8=E9=87=8A)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/JSQ.java | 91 +++++++++++++++++++++++-------------- src/java2020spring/ZHQ.java | 63 +++++++++++++------------ 2 files changed, 88 insertions(+), 66 deletions(-) diff --git a/src/java2020spring/JSQ.java b/src/java2020spring/JSQ.java index 14694a3..252a1a8 100644 --- a/src/java2020spring/JSQ.java +++ b/src/java2020spring/JSQ.java @@ -10,16 +10,18 @@ public class JSQ extends Frame implements ActionListener,WindowListener{ private Container container; private GridBagLayout layout; private GridBagConstraints constraints; -private JTextField textField; -private String getbutton; +private JTextField textField; //输入框 +private String getbutton; //用户点击的按钮 private double result; private boolean start; -private JMenuBar menubar; -private JMenuItem menu_exit; -private JMenuItem menu2_ejz; -private JMenuItem menu2_bjz; -private Dialog dialog; -private Label label_dialog; +private JMenuBar menubar; //菜单栏 +private JMenuItem menu_exit; //'关闭'选项 +private JMenuItem menu2_ejz; //'二进制'选项 +private JMenuItem menu2_sjz; //'三进制'选项 +private JMenuItem menu2_bjz; //'八进制'选项 +private JMenuItem menu2_sljz; //'十六进制'选项 +private Dialog dialog; +private Label label_dialog; //'关于'中弹出的对话框 private JButton button0; private JButton button1; private JButton button2; @@ -42,31 +44,35 @@ private JButton button_cos; private JButton button_tan; private JButton button_exp; private JButton button_sqrt; -private JButton button_minussign; +private JButton button_minussign; //'负号'按钮 private JButton button_Delete; private JButton button_CE; -/**设置计算器布局&设置监听器**/ public JSQ() { - super( "李家祺的计算器" ); - this.setLocation( 100,100 ); + +/**设置计算器整体属性**/ + super( "李家祺的计算器" ); + this.setLocation( 400,200 ); this.setSize(400,300); this.setResizable(true); this.setLayout(new GridLayout( 7,2)); - this.addMenu(); + this.addMenu(); + +/**设置输入框属性**/ textField = new JTextField(50); textField.setBackground(new Color(230,240,250)); textField.setForeground(new Color(30,60,90)); textField.setText("0"); textField.setFont(new Font("黑体",Font.BOLD,22)); textField.setEditable(false); - this.setResizable(false); + this.setResizable(false); //不可调整输入框大小 this.add( textField ); start = true; result = 0; getbutton = "="; +/**第一排布局**/ JPanel panel0 = new JPanel(); panel0.setLayout( new GridLayout( 1,4,4,4 ) ); JPanel panel1 = new JPanel(); @@ -83,6 +89,7 @@ public JSQ() button_CE = new JButton( "CE" ); button_CE.setForeground(new Color(30,60,90)); +/**第二排布局**/ JPanel panel2 = new JPanel(); panel2.setLayout( new GridLayout( 1,5,4,4 ) ); this.add( panel2 ); @@ -97,6 +104,7 @@ public JSQ() button_divide = new JButton( "/" ); button_divide.setForeground(new Color(30,60,90)); +/**第三排布局**/ JPanel panel3 = new JPanel(); panel3.setLayout( new GridLayout(1,5,4,4) ); this.add( panel3 ); @@ -111,6 +119,7 @@ public JSQ() button_multiply = new JButton( "*" ); button_multiply.setForeground(new Color(30,60,90)); +/**第四排布局**/ JPanel panel4=new JPanel(); panel4.setLayout( new GridLayout( 1,5,4,4 ) ); this.add(panel4); @@ -125,6 +134,7 @@ public JSQ() button_minus = new JButton( "-" ); button_minus.setForeground(new Color(30,60,90)); +/**第五排布局**/ JPanel panel5 = new JPanel(); panel5.setLayout( new GridLayout( 1,5,4,4 ) ); this.add( panel5 ); @@ -139,6 +149,7 @@ public JSQ() button_plus = new JButton( "+" ); button_plus.setForeground(new Color(30,60,90)); +/**添加点击方法**/ panel1.add( button_sqrt ); panel1.add( button_minussign ); panel1.add( button_exp ); @@ -165,6 +176,7 @@ public JSQ() panel5.add( button_sin ); panel5.add( button_plus) ; +/**设置监听器**/ button_sqrt.addActionListener( this ); button_minussign.addActionListener( this ); button_exp.addActionListener( this ); @@ -190,53 +202,63 @@ public JSQ() button_equal.addActionListener( this ); button_sin.addActionListener( this ); button_plus.addActionListener( this ); + /**注册窗口监听器**/ this.addWindowListener( new WinClose() ); this.setVisible( true ); - } + } + /**菜单的添加**/ private void addMenu(){ JMenuBar menubar = new JMenuBar(); this.add( menubar ); + + /**'功能'菜单**/ JMenu menu1 = new JMenu( "功能" ); - JMenu menu2 = new JMenu( "进制转换"); + JMenuItem menu1_exit = new JMenuItem( "关闭" ,new ImageIcon("a.jpg"));//添加图标 + menu1_exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));//添加快捷方式'Ctrl+X' + JMenuItem menu1_unitconversion = new JMenuItem( "单位转换器",new ImageIcon("b.jpg") );//添加图标 + menu1_unitconversion.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));//添加快捷方式'Ctrl+A' + menu1_unitconversion .addActionListener( this ); - JMenuItem menu1_exit = new JMenuItem( "关闭" ,new ImageIcon("a.jpg")); - menu1_exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK)); - menu1_exit.addActionListener( this ); + /**'进制转换'菜单**/ + JMenu menu2 = new JMenu( "进制转换"); JMenuItem menu2_ejz = new JMenuItem( "二进制" ); - menu2_ejz.addActionListener( this ); - JMenuItem menu2_ternary=new JMenuItem("三进制"); - menu2_ternary.addActionListener(this); + JMenuItem menu2_sjz=new JMenuItem("三进制"); JMenuItem menu2_bjz = new JMenuItem("八进制"); - menu2_bjz.addActionListener( this ); JMenuItem menu2_sljz = new JMenuItem("十六进制"); - menu2_sljz.addActionListener( this ); + + /**'关于'菜单**/ JMenu menu3 =new JMenu("关于"); JMenuItem menu3_developer=new JMenuItem("开发者"); - menu3_developer.addActionListener(this); JMenuItem menu3_developmentTime=new JMenuItem("开发时间"); - menu3_developmentTime.addActionListener(this); dialog =new Dialog(this,"",true); dialog.setSize(380,100); label_dialog =new Label("",Label.CENTER); dialog.add(label_dialog); dialog.addWindowListener(this); - JMenuItem m4_unitconversion = new JMenuItem( "单位转换器",new ImageIcon("b.jpg") ); - m4_unitconversion.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK)); - m4_unitconversion .addActionListener( this ); - - menu1.add(m4_unitconversion); + + /**添加点击方法**/ + menu1.add(menu1_unitconversion); menu1.add( menu1_exit ); menubar.add( menu1 ); menu2.add( menu2_ejz ); - menu2.add(menu2_ternary); + menu2.add(menu2_sjz); menu2.add( menu2_bjz ); menu2.add( menu2_sljz ); menubar.add( menu2 ); menu3.add(menu3_developer); menu3.add(menu3_developmentTime); menubar.add(menu3); + + /**设置监听器**/ + menu1_exit.addActionListener( this ); + menu2_ejz.addActionListener( this ); + menu2_sjz.addActionListener(this); + menu2_bjz.addActionListener( this ); + menu2_sljz.addActionListener( this ); + menu3_developer.addActionListener(this); + menu3_developmentTime.addActionListener(this); } /**按钮的单击事件处理方法**/ @@ -301,8 +323,8 @@ public JSQ() else if(e.getActionCommand()=="单位转换器") { this.dispose(); - ZHQ un=new ZHQ(); - un.main(null); + ZHQ h=new ZHQ(); + h.main(null); } else if ( e.getActionCommand() == "关闭" ) { @@ -401,6 +423,7 @@ public JSQ() public static void main( String args[] ) {JSQ calculator = new JSQ();} } + /**单击窗口关闭按钮时触发并执行实现窗口监听器接口中的方法**/ class WinClose implements WindowListener{ public void windowClosing( WindowEvent e ){ diff --git a/src/java2020spring/ZHQ.java b/src/java2020spring/ZHQ.java index 10c8471..9dff233 100644 --- a/src/java2020spring/ZHQ.java +++ b/src/java2020spring/ZHQ.java @@ -11,6 +11,7 @@ public class ZHQ extends JFrame { } /**设置窗口大小**/ private final int WIDTH = 400, HEIGHT = 300; + /**设置窗口布局**/ private JLabel InputUnit=new JLabel("输入单位"); private JComboBox whichIn=new JComboBox(new String[]{"",""}); @@ -18,7 +19,7 @@ public class ZHQ extends JFrame { private JTextField Default=new JTextField("1"); private JLabel OutputUnit=new JLabel("输出单位"); private JLabel showResult=new JLabel("显示结果"); - private JLabel txtResult=new JLabel(" "); + private JLabel txtResult=new JLabel(" "); //显示结果处初始为空 private JComboBox whichOut=new JComboBox(new String[]{"",""}); private JButton goTrans = new JButton("转换"); private JButton goClear = new JButton("清空"); @@ -39,19 +40,20 @@ public class ZHQ extends JFrame { ButtonGroup group = new ButtonGroup(); group.add(rdLeng); group.add(rdWeig); - this.getContentPane().add(rdLeng); - this.getContentPane().add(rdWeig); - this.getContentPane().add(goTrans); - this.getContentPane().add(goClear); - this.getContentPane().add(goreturn); - this.getContentPane().add(InputNum); + this.getContentPane().add(rdLeng); //读取输入的长度 + this.getContentPane().add(rdWeig); //读取输入的质量 + this.getContentPane().add(goTrans); //'转换' + this.getContentPane().add(goClear); //'清空' + this.getContentPane().add(goreturn);//'返回' + this.getContentPane().add(InputNum);//'输入的数字' this.getContentPane().add(Default); - this.getContentPane().add(InputUnit); - this.getContentPane().add(whichIn); - this.getContentPane().add(showResult); - this.getContentPane().add(txtResult); - this.getContentPane().add(OutputUnit); - this.getContentPane().add(whichOut); + this.getContentPane().add(InputUnit);//用户选择的输入单位 + this.getContentPane().add(whichIn); //用户输入的数字 + this.getContentPane().add(showResult);//显示结果单位 + this.getContentPane().add(txtResult); //结果框内出现的结果 + this.getContentPane().add(OutputUnit);//用户选择的输出单位 + this.getContentPane().add(whichOut); //显示结果数字 + /**字体**/ Default.setFont(new Font("宋体",Font.BOLD,20)); InputUnit.setFont(new Font("宋体",Font.BOLD,15)); @@ -60,6 +62,7 @@ public class ZHQ extends JFrame { showResult.setFont(new Font("宋体",Font.BOLD,15)); goTrans.setFont(new Font("宋体",Font.BOLD,15)); goClear.setFont(new Font("宋体",Font.BOLD,15)); + /**按钮颜色**/ goreturn.setForeground(new Color(30,60,90)); goClear.setForeground(new Color(30,60,90)); @@ -69,25 +72,19 @@ public class ZHQ extends JFrame { this.setVisible(true); this.doLayout(); +/**设置监听器**/ goTrans.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ - doConvert(); - } - }); + doConvert();}}); //'转换'键的 goClear.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ - Default.setText("0"); - txtResult.setText("0"); - } - }); -/**设置监听器**/ + Default.setText("0"); //当用户无操作时显示的是0 + txtResult.setText("0");}}); //'清除'键的 goreturn.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ JSQ calculator = new JSQ(); boolean flase = false; - setVisible(flase); - } - }); + setVisible(flase);}}); ////'返回'键的 rdLeng.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ whichIn.setModel(new DefaultComboBoxModel(lengthUnit)); @@ -107,10 +104,10 @@ public class ZHQ extends JFrame { final int offX=100; public void doLayout(){ super.doLayout(); -/**选择长度或质量单位转换**/ + +/**各框的位置大小**/ rdLeng.setBounds(offX, 15, 100, 20); rdWeig.setBounds(rdLeng.getX()+rdLeng.getWidth()+5, 15,100, 20); -/**各框的长宽**/ InputUnit.setBounds(offX, rdLeng.getY()+rdLeng.getHeight()+5, 80, 20); whichIn.setBounds(InputUnit.getX()+InputUnit.getWidth()+5, InputUnit.getY(), 80, 20); InputNum.setBounds(offX, InputUnit.getY()+InputUnit.getHeight()+5, 80, 20); @@ -119,15 +116,15 @@ public class ZHQ extends JFrame { whichOut.setBounds(OutputUnit.getX()+OutputUnit.getWidth()+5, OutputUnit.getY(), 80, 20); showResult.setBounds(offX, whichOut.getY()+whichOut.getHeight()+5, 80, 20); txtResult.setBounds(showResult.getX()+showResult.getWidth()+5, showResult.getY(), 100, 20); -/**框水平居中**/ + +/**根据大框的大小确定'转换''返回'及'清空'按钮的位置**/ int w=getWidth (); - int x=(w-70*2-5)/2; -/**"转换"按钮的长宽**/ + int x=(w-70*2-5)/2; goTrans.setBounds(x, showResult.getY()+showResult.getHeight()+30, 70, 30); -/**"清空"按钮的长宽**/ goClear.setBounds(goTrans.getX()+goTrans.getWidth()+3, goTrans.getY(), 70, 30); goreturn.setBounds(20,10, 70, 30); } + public void doConvert(){ double v=0; try{ @@ -137,7 +134,8 @@ public class ZHQ extends JFrame { Default.setText("???"); return; } -/**长度单位转换(以"米"为标准单位)**/ + +/**长度单位转换功能(以"米"为标准单位)**/ if(rdLeng.isSelected()){ switch(whichIn.getSelectedIndex()){ case 0: break; @@ -160,7 +158,8 @@ public class ZHQ extends JFrame { txtResult.setText(String.format("%2.3f", v)); } } -/**质量单位转换(以"千克"为标准单位)**/ + +/**质量单位转换功能(以"千克"为标准单位)**/ else{ switch(whichIn.getSelectedIndex()){ case 0:v=v*1000;break; -- Gitee From 76c77bd7c5413aa5c99b77cca2d09ce686053891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=B6=E7=A5=BA?= Date: Thu, 10 Jun 2021 18:51:37 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=8F=92=E5=85=A5=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- a.jpg | Bin 0 -> 48808 bytes b.jpg | Bin 0 -> 20764 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 a.jpg create mode 100644 b.jpg diff --git a/a.jpg b/a.jpg new file mode 100644 index 0000000000000000000000000000000000000000..acc9fadb0fa556b5c12ccf0043506c797ddb4af0 GIT binary patch literal 48808 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 literal 0 HcmV?d00001 diff --git a/b.jpg b/b.jpg new file mode 100644 index 0000000000000000000000000000000000000000..536342a8858fc25fb07aa17a208b893f48af10ea GIT binary patch literal 20764 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 literal 0 HcmV?d00001 -- Gitee From 0e2cbd5e260aed0aff4a298502f99701aca8ec5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=B6=E7=A5=BA?= Date: Thu, 10 Jun 2021 21:59:11 +0800 Subject: [PATCH 5/5] =?UTF-8?q?calculator=203.0=20(=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=80=E4=B8=8B=E2=80=9C/=E2=80=9D=E8=BF=90=E7=AE=97?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/java2020spring/JSQ.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/java2020spring/JSQ.java b/src/java2020spring/JSQ.java index 252a1a8..51edc92 100644 --- a/src/java2020spring/JSQ.java +++ b/src/java2020spring/JSQ.java @@ -368,8 +368,12 @@ public JSQ() else if (getbutton.equals( "-" ) ) result=result-x; else if ( getbutton.equals( "*" ) ) result=result*x; else if ( getbutton.equals( "/" ) ) - {if (result==0) result = 000; //如果被除数为0,则显示异常 - else result=result*x;} + { + if (Double.parseDouble(textField.getText()) == 0.0) { + textField.setText("ERROR"); } + else { + result=result/Double.parseDouble(textField.getText());} + } else if ( getbutton.equals( "=" ) ) result=x; else if ( getbutton.equals( "√" ) ) { @@ -378,12 +382,12 @@ public JSQ() result = a;} else textField.setText("请输入一个非负数"); } - else if ( getbutton.equals( "exp" ) ) + else if ( getbutton.equals( "exp" ) ) //返回自然数底数e的参数次方 { a = Math.exp(x); result = a; } - else if ( getbutton.equals( "log" ) ) + else if ( getbutton.equals( "log" ) ) //返回参数的自然数底数的对数值 { a = Math.log(x); result = a; -- Gitee