楊小白 2016-06-16 08:53 采纳率: 0%
浏览 1303

java代码出错如何进行修改

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
public class MainFrame extends JFrame {
public static void main(String args[]){
ComputerFrame com = new ComputerFrame();
com.setTitle("计算图形面积");
com.setBounds(100, 100, 500, 260);

}

}

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class ComputerFrame extends JFrame implements ActionListener{
Triangle triangle;
Lader lader;
Circle circle;
JTextField textA, textB,textC;
JTextArea showArea;
JButton controlButton1, controlButton2;
JSpinner spinner;
ComputerFrame(){
init();

setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init() {
textA = new JTextField(5);
textB = new JTextField(5);;
textC = new JTextField(5);
showArea = new JTextArea();
controlButton1 = new JButton("计算面积");
controlButton2 = new JButton("计算周长");
JPanel pNorth = new JPanel();
pNorth.add(new JLabel("边A:"));
pNorth.add(textA);
pNorth.add(new JLabel("边B:"));
pNorth.add(textB);
pNorth.add(new JLabel("边C:"));
pNorth.add(textC);
pNorth.add(controlButton1);
pNorth.add(controlButton2);
pNorth.add(spinner);
controlButton1.addActionListener(this);
controlButton2.addActionListener(this);
add(pNorth,BorderLayout.NORTH);
add(new JScrollPane(showArea),BorderLayout.CENTER);}
public void actionPerformed(ActionEvent e){
String choose = (String) spinner.getValue();
if (choose.equals("--三角形-- ")) {
try{
double a = Double.parseDouble(textA.getText().trim());
double b = Double.parseDouble(textB.getText().trim());
double c = Double.parseDouble(textC.getText().trim());
triangle.setA(a);
triangle.setB(b);
triangle.setC(c);
if(e.getSource()==controlButton1)
{
String area = triangle.getArea();
showArea.append("三角形"+a+","+b+","+c+"的面积:");
showArea.append(area+"\n");
}
else
{
String zhouchang = triangle.getZhouchang();
showArea.append("三角形"+a+","+b+","+c+"的周长:");
showArea.append(zhouchang+"\n");
}
}

                    catch(Exception ex){
                        showArea.append("\n"+ex+"\n");
                    }

                } else if (choose.equals("---圆形---")) {
                    double r = Double.parseDouble(textA.getText());
                    if(e.getSource()==controlButton1)
                    {   double area = circle.getArea();
                        showArea.append("圆形"+r+"的面积:");
                        showArea.append(area+"\n");
                    }
                    else
                    {
                        double zhouchang = circle.getZhouchang();
                        showArea.append("圆形"+r+"的周长:");
                        showArea.append(zhouchang+"\n");
                    }
                } else if (choose.equals("---梯形---")) {
                    double height = Double.parseDouble(textA.getText());
                    double bottom = Double.parseDouble(textB.getText());
                    double above = Double.parseDouble(textC.getText());
                    if(e.getSource()==controlButton1)
                    {   double area = lader.getArea();
                        showArea.append("梯形"+height+","+bottom+","+above+"的面积:");
                        showArea.append(area+"\n");
                    }
                    else
                    {
                        double zhouchang = lader.getZhouchang();
                        showArea.append("圆形"+height+","+bottom+","+above+"的周长:");
                        showArea.append(zhouchang+"\n");
                    }
                }
        String[] strs = { "--三角形--  ", "---圆形---", "---梯形---" };
        SpinnerListModel model = new SpinnerListModel(strs);
        model.addChangeListener(new ChangeListener() {

            @Override
            public void stateChanged(ChangeEvent e) {
                SpinnerModel source=(SpinnerModel) e.getSource();

                if(source.getValue().equals("--三角形--  ")){
                    textA.setEnabled(true);
                    textA.setToolTipText("边A");
                    textB.setEnabled(true);
                    textB.setToolTipText("边B");
                    textC.setEnabled(true);
                    textC.setToolTipText("边C");

                }else if (source.getValue().equals("---梯形---")) {
                    textA.setEnabled(true);
                    textA.setToolTipText("请输入高");
                    textB.setEnabled(true);
                    textB.setToolTipText("请输入下底");
                    textC.setEnabled(true);
                    textC.setToolTipText("请输入上底");

                }else if (source.getValue().equals("---圆形---")) {
                    textA.setEnabled(true);
                    textA.setToolTipText("请输入半径");
                    textB.setEnabled(false);
                    textC.setEnabled(false);

                }

}});
  }}

        public class Triangle {
double sideA,sideB,sideC,area,zhouchang;
boolean isTriangle;
public String getArea(){
    if(isTriangle){
        double p = (sideA+sideB+sideC)/2.0;
        area = Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));
        zhouchang = sideA+sideB+sideC;
        return String.valueOf(area);
    }
    else{
        return "无法计算面积";
    }
}
public String getZhouchang(){
    if(isTriangle){
        zhouchang = sideA+sideB+sideC;
        return String.valueOf(zhouchang);
    }
    else{
        return "无法计算周长";
    }
}
public void setA(double a){
    sideA = a;
    if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideB+sideC>sideA){
        isTriangle = true;
    }
    else{
        isTriangle = false;
    }
}
public void setB(double b){
    sideB = b;
    if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideB+sideC>sideA){
        isTriangle = true;
    }
    else{
        isTriangle = false;
    }
}
public void setC(double c){
    sideC = c;
    if(sideA+sideB>sideC&&sideA+sideC>sideB&&sideB+sideC>sideA){
        isTriangle = true;
    }
    else{
        isTriangle = false;
    }
}

}

public class Circle extends Shape{

double r;
public Circle(){
    this.r=r;
}

@Override   
public double getArea(){
    return Shape.PI*r*r;
}

@Override
public double getZhouchang(){
    return Shape.PI*r*2;
}

}

public class Lader {
double above,bottom,height,area,heightl;
Lader()
{
this.above=above;
this.bottom=bottom;
this.height=height;

        //方法体,将参数a,b,c分别赋值给above,bottom,height
    }
     double getZhouchang(){
          heightl=Math.sqrt(height*height+(bottom-above)*(bottom-above));
          return bottom+above+height+heightl;
         }
    double getArea()
    {
      area=(above+bottom)*height/2;
      return area; //方法体,,要求计算出area返回
    }
}

提示错误,想问要怎样修改??

图片说明

  • 写回答

3条回答 默认 最新

  • _1_1_7_ 2016-06-16 09:31
    关注
        spinner=new JSpinner();
        pNorth.add(spinner);//这行代码前面加上面的那行代码
    
        spinner对象是null,所以报NullPointException
    
    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题