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返回
}
}
提示错误,想问要怎样修改??