多边形的周长与面积计算
父类
package com.ZBC;
public abstract class shape {
private double length;
private double angle;
abstract double Area();
abstract double Girth();
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getAngle() {
return angle;
}
public void setAngle(double angle) {
this.angle = angle;
}
}
圆形类
package com.ZBC;
public class Circular extends shape {
private double r;
public Circular(){
}
public Circular(double r){
this.r = r;
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public double Area(){ //求面积,取π为3.14
return r*r*3.14;
}
public double Girth(){ 求周长,取π为3.14
return 2*r*3.14;
}
}
矩形类
package com.ZBC;
public class Rectangle extends shape {
private double length;
private double width;
public Rectangle(){
}
public Rectangle(double length,double width){
this.length=length;
this.width=width;
}
public double getLength() {
return length;
}
public void setLength(double length) {
this.length = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double Area(){ //求面积
return length*width;
}
三角形
package com.ZBC;
public class Triangle extends shape {
private double a;
private double b;
private double c;
public Triangle(){
}
public Triangle(double a,double b,double c){
this.a=a;
this.b=b;
this.c=c;
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getC() {
return c;
}
public void setC(double c) {
this.c = c;
}
public double Area(){
double p=(a+b+c)/2;
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
public double Girth(){
return a+b+c;
}
public boolean isok(){
if(a+b<=c||a+c<=b||c+b<=a)
return false;
return true;
}
}
界面
package com.ZBC;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Interface extends JFrame {
public Interface(){
setTitle("多边形的周长与面积计算");
setBounds(400,200,660,480);
setLocationRelativeTo(null);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//所需图片
ImageIcon Triangle =new ImageIcon("src/com/ZBC/Triangle.jpg");
ImageIcon Rectangle =new ImageIcon("src/com/ZBC/Rectangle.jpg");
ImageIcon Circular =new ImageIcon("src/com/ZBC/Circular.jpg");
ImageIcon bg =new ImageIcon("src/com/ZBC/Bg.jpg");
Container c =getContentPane();
//文本框
JTextField Circular_r = new JTextField();
JTextField Rectangle_length =new JTextField();
JTextField Rectangle_width =new JTextField();
JTextField Triangle_a =new JTextField();
JTextField Triangle_b =new JTextField();
JTextField Triangle_c =new JTextField();
JTextField Circular_area =new JTextField();
JTextField Circular_girth =new JTextField();
JTextField Rectangle_area=new JTextField();
JTextField Rectangle_girth =new JTextField();
JTextField Triangle_area =new JTextField();
JTextField Triangle_girth =new JTextField();
//标签
JLabel jl1=new JLabel("圆形");
JLabel jl2=new JLabel("矩形");
JLabel jl3=new JLabel("三角形");
JLabel jl4=new JLabel("请输入圆的半径:");
JLabel jl5=new JLabel("请输入矩形的长:");
JLabel jl6=new JLabel("请输入矩形的宽:");
JLabel jl7=new JLabel("请输入三角形的边长:");
JLabel jl8=new JLabel("请输入三角形的边长:");
JLabel jl9=new JLabel("请输入三角形的边长:");
JLabel jl10=new JLabel("圆的面积:");
JLabel jl11=new JLabel("圆的周长:");
JLabel jl12=new JLabel("矩形的面积:");
JLabel jl13=new JLabel("矩形的周长:");
JLabel jl14=new JLabel("三角形的面积:");
JLabel jl15=new JLabel("三角形的周长:");
JLabel bcg=new JLabel();
//按钮组件
JButton btn1 =new JButton("");
JButton btn2 =new JButton("");
JButton btn3 =new JButton("");
//设置按钮
btn1.setBounds(20,40,80,80);
btn2.setBounds(20,160,80,80);
btn3.setBounds(20,280,80,80);
//设置图片的大小
Triangle.setImage(Triangle.getImage().getScaledInstance(80,80,1000));
Rectangle.setImage(Rectangle.getImage().getScaledInstance(80,80,1000));
Circular.setImage(Circular.getImage().getScaledInstance(80,80,1000));
bg.setImage(bg.getImage().getScaledInstance(700,500,1000));
//把图片绑定在按钮上�
btn1.setIcon(Circular);
btn2.setIcon(Rectangle);
btn3.setIcon(Triangle);
bcg.setIcon(bg);
//设置文本框的位置及大小
Circular_r.setBounds(230,70,80,20);
Rectangle_length.setBounds(230,170,80,20);
Rectangle_width.setBounds(230,210,80,20);
Triangle_a.setBounds(230,280,80,20);
Triangle_b.setBounds(230,310,80,20);
Triangle_c.setBounds(230,340,80,20);
Circular_area.setBounds(450,60,80,20);
Circular_girth.setBounds(450,100,80,20);
Rectangle_area.setBounds(450,170,80,20);
Rectangle_girth.setBounds(450,210,80,20);
Triangle_area.setBounds(450,290,80,20);
Triangle_girth.setBounds(450,330,80,20);
//设置标签的位置及其大小
jl1.setBounds(50,120,60,20);
jl2.setBounds(50,240,60,20);
jl3.setBounds(40,360,60,20);
jl4.setBounds(130,70,120,20);
jl5.setBounds(130,170,120,20);
jl6.setBounds(130,210,120,20);
jl7.setBounds(110,280,120,20);
jl8.setBounds(110,310,120,20);
jl9.setBounds(110,340,120,20);
jl10.setBounds(370,60,120,20);
jl11.setBounds(370,100,60,20);
jl12.setBounds(360,170,120,20);
jl13.setBounds(360,210,120,20);
jl14.setBounds(350,290,120,20);
jl15.setBounds(350,330,120,20);
bcg.setBounds(-20,-10,700,500);
//将各个组件添加到容器
c.add(btn1);
c.add(btn2);
c.add(btn3);
c.add(Circular_r);
c.add(Rectangle_length);
c.add(Rectangle_width);
c.add(Triangle_a);
c.add(Triangle_b);
c.add(Triangle_c);
c.add(Circular_area);
c.add(Circular_girth);
c.add(Rectangle_area);
c.add(Rectangle_girth);
c.add(Triangle_area);
c.add(Triangle_girth);
c.add(jl1);
c.add(jl2);
c.add(jl3);
c.add(jl4);
c.add(jl5);
c.add(jl6);
c.add(jl7);
c.add(jl8);
c.add(jl9);
c.add(jl10);
c.add(jl11);
c.add(jl12);
c.add(jl13);
c.add(jl14);
c.add(jl15);
c.add(bcg);
//动作
btn1.addActionListener (new ActionListener() {
@Override
public void actionPerformed (ActionEvent e) {
try {
Circular circular = new Circular();
String crs = Circular_r.getText();
circular.setR(Double.parseDouble(crs));
Circular_area.setText(String.format("%.6f", circular.Area()));
Circular_girth.setText(String.format("%.6f", circular.Girth()));
}catch (Exception e2){
JOptionPane.showMessageDialog(null,"输入的格式有误,请重新输入!");
Circular_r.setText("");
Circular_area.setText("");
Circular_girth.setText("");
return;
}
}
});
btn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try{
Rectangle rectangle = new Rectangle();
String rcs_l = Rectangle_length.getText();
String rcs_w =Rectangle_width.getText();
rectangle.setLength(Double.parseDouble(rcs_l));
rectangle.setWidth(Double.parseDouble(rcs_w));
Rectangle_area.setText(String.format("%.6f",rectangle.Area()));
Rectangle_girth.setText(String.format(".%6f",rectangle.Girth()));
}catch(Exception e2){
JOptionPane.showMessageDialog(null,"输入的格式有误,请重新输入!");
Rectangle_length.setText("");
Rectangle_width.setText("");
Rectangle_girth.setText("");
Rectangle_area.setText("");
return;
}
}
});
btn3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try{
Triangle triangle =new Triangle();
String tri_a =Triangle_a.getText();
String tri_b =Triangle_b.getText();
String tri_c=Triangle_c.getText();
triangle.setA(Double.parseDouble(tri_a));
triangle.setB(Double.parseDouble(tri_b));
triangle.setC(Double.parseDouble(tri_c));
if(!triangle.isok()){
JOptionPane.showMessageDialog(null,"您输入的数据无法构成三角形!");
Triangle_a.setText("");
Triangle_b.setText("");
Triangle_c.setText("");
Triangle_girth.setText("");
Triangle_area.setText("");
return ;
}
Triangle_area.setText(String.format("%.6f",triangle.Area()));
Triangle_girth.setText(String.format("%.6f",triangle.Girth()));
}catch(Exception e2){
JOptionPane.showMessageDialog(null,"输入的格式有误,请重新输入!");
Triangle_a.setText("");
Triangle_b.setText("");
Triangle_c.setText("");
Triangle_girth.setText("");
Triangle_area.setText("");
return ;
}
}
});
setVisible(true);
}
}
Main方法
package com.ZBC;
public class Main {
public static void main(String[] args) {
new Interface(); //创建页面
}
}
运行结果:
无法构成三角形
界面