hallo~~ 2020-10-16 16:59 采纳率: 0%
浏览 74

java中报错原因 急求 谢谢

图片说明

package text;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import javax.swing.border.Border;

class Board1 implements ActionListener
{
    JFrame frame;
    JPanel p1, p2, p3, p4, p5, p6,p7,p8;
    JTextField tf;
    JButton[] b=new JButton[50];
    Board1(String t) 
    {
        frame = new JFrame(t);
        frame.setSize(400, 500);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        Container container = frame.getContentPane();
        container.setLayout(new BorderLayout(2,2));

        p1 = new JPanel();
        tf = new JTextField(35);
        tf.setHorizontalAlignment(JTextField.RIGHT);
        p1.add(tf);

        p2 = new JPanel();
        p2.setLayout(new BorderLayout(2,2));

        p3 = new JPanel();
        p3.setLayout(new BorderLayout(2,2));

        p4 = new JPanel();
        p4.setLayout(new BorderLayout(2,2));

        p5 = new JPanel();
        Border border=BorderFactory.createLoweredBevelBorder();
        p5.setBorder(border);

        p6 = new JPanel();
        p6.setLayout(new GridLayout(1,3));
        p6.add(b[0] =new JButton("Backspace"));
        p6.add(b[1] =new JButton("CE"));
        p6.add(b[2] =new JButton("C"));

        p7 = new JPanel();
        p7.setLayout(new GridLayout(4,1));
        p7.add(b[3] =new JButton("MC"));
        p7.add(b[4] =new JButton("MR"));
        p7.add(b[5] =new JButton("MS"));
        p7.add(b[6] =new JButton("M+"));

        p8 = new JPanel();
        p8.setLayout(new GridLayout(4,5));
        p8.add(b[24]=new JButton("7"));
        p8.add(b[25]=new JButton("8"));
        p8.add(b[26]=new JButton("9"));
        p8.add(b[15]=new JButton("/"));
        p8.add(b[7]=new JButton("sqrt"));
        p8.add(b[21]=new JButton("4"));
        p8.add(b[22]=new JButton("5"));
        p8.add(b[23]=new JButton("6"));
        p8.add(b[14]=new JButton("*"));
        p8.add(b[8]=new JButton("%"));
        p8.add(b[18]=new JButton("1"));
        p8.add(b[19]=new JButton("2"));
        p8.add(b[20]=new JButton("3"));;
        p8.add(b[13]=new JButton("-"));
        p8.add(b[9]=new JButton("1/x"));
        p8.add(b[17]=new JButton("0"));
        p8.add(b[10]=new JButton("+/-"));
        p8.add(b[11]=new JButton("."));
        p8.add(b[12]=new JButton("+"));
        p8.add(b[16]=new JButton("="));
        for(int i=0;i<27;i++)
        {
            b[i].addActionListener(this);
        }

        p4.add(BorderLayout.WEST,p7);
        p4.add(BorderLayout.CENTER,p8);
        p3.add(BorderLayout.CENTER,p5);
        p3.add(BorderLayout.EAST,p6);
        p2.add(BorderLayout.NORTH,p3);
        p2.add(BorderLayout.CENTER,p4); 
        frame.add(BorderLayout.NORTH,p1);
        frame.add(BorderLayout.CENTER,p2);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    }
    public void actionPerformed(ActionEvent e) 
    {   
        for(int j=0;j<27;j++)
        {
            if (e.getSource()==b[17+j])
            {
                tf.setText(tf.getText()+j);
            }
        }
        if(e.getSource()==b[12])
        {
            tf.setText(tf.getText()+"+");
        }
        else if(e.getSource()==b[13])
        {
            tf.setText(tf.getText()+"-");
        }
        else if(e.getSource()==b[14])
        {
            tf.setText(tf.getText()+"*");
        }
        else if(e.getSource()==b[15])
        {
            tf.setText(tf.getText()+"/");
        }
        else if(e.getSource()==b[11])
        {
            tf.setText(tf.getText()+".");
        }
        else if(e.getSource()==b[1]||e.getSource()==b[2])
        {
            tf.setText("");
        }
        else if(e.getSource()==b[16])
        {
            int i=0,j=0,x;
            float t=0,n=-1;
            float[] a=new float[50];
            char[] c=new char[50];
            String s=tf.getText();
            while(i<s.length())
            {
                if(s.charAt(i)>='0'&&s.charAt(i)<='9')
                {
                    if(n==-1&&t==0)
                    {
                        n=s.charAt(i)-48;                   
                    }
                    else if(t==0)
                    {
                        n=n*10+(s.charAt(i)-48);
                    }
                    else
                    {
                        t=t*0.1f;
                        n=n+(s.charAt(i)-48)*t;
                    }
                }
                else if(s.charAt(i)=='.')
                {
                    t=1;
                }
                else if(s.charAt(i)=='+'||s.charAt(i)=='-'||s.charAt(i)=='*'||s.charAt(i)=='/')
                {
                    a[j]=n;
                    n=-1;
                    t=0;
                    c[j]=s.charAt(i);
                    j++;
                }
                i++;
            }
            a[j]=n;
            c[j]='#';
            /*tf.setText("");
            for(i=0;i<j;i++)
            {
                tf.setText(tf.getText()+a[i]+c[i]);
            }
            tf.setText(tf.getText()+a[i]);*/
            for(i=0;c[i]!='#';j--)
            {
                if(c[i]=='*')
                {
                    a[i]=a[i]*a[i+1];
                    for(x=i+1;x<=j;x++)
                    {
                        a[x]=a[x+1];
                        c[x]=c[x+1];
                    }
                }
                else if(c[i]=='/')
                {
                    a[i]=a[i]/a[i+1];
                    for(x=i+1;x<=j;x++)
                    {
                        a[x]=a[x+1];
                        c[x]=c[x+1];
                    }
                }
                else 
                {
                    i++;
                    j++;
                }
            }
            while(c[0]!='#')
            {
                if(c[0]=='+')
                {
                    a[0]=a[0]+a[1];
                    for(x=1;x<=j;x++)
                    {
                        a[x]=a[x+1];
                        c[x]=c[x+1];
                    }
                }
                else if(c[0]=='-')
                {
                    a[0]=a[0]-a[1];
                    for(x=1;x<=j;x++)
                    {
                        a[x]=a[x+1];
                        c[x]=c[x+1];
                    }
                }
                j--;
            }
            tf.setText(Float.toString(a[0]));
        }
    }
}
public class CYX1015_4 
{
    public static void main(String[] args)
    {
        new Board1("计算器");
    }
}

  • 写回答

2条回答 默认 最新

  • 一片舟 2020-10-16 17:23
    关注

    注意看控制台错误信息。。。。。。

    评论

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型