用户界面交互计算圆的周长和面积

来源:互联网 发布:淘宝店铺2017招牌图片 编辑:程序博客网 时间:2024/05/17 09:08
package com.dxxy.interaction;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.DecimalFormat;

import javax.swing.*;


public class CalculateDemo extends JFrame implements ActionListener{
Circle theCircle;
JTextField messageText;
JTextArea resultText;
JButton calButton,closeButton;
//构造方法
public CalculateDemo(){
super("计算圆的面积和周长");
Container c = this.getContentPane();
c.setLayout(new FlowLayout());
JPanel upPanel=new JPanel();
JPanel lowPanel=new JPanel();
JLabel messageLabel=new JLabel("输入圆的半径:");
/*创建各组件*/
messageText=new JTextField(10);
calButton=new JButton("计算");
closeButton=new JButton("关闭窗口");
resultText=new JTextArea("计算结果",4,20);
/*实现主容器上部分*/
upPanel.add(messageLabel);
upPanel.add(messageText);
upPanel.add(calButton);
upPanel.add(closeButton);
c.add(upPanel);
/*实现容器下部分*/
lowPanel.add(resultText);
c.add(lowPanel);
/*设置容器相关大小,可见,关闭*/
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(500, 300);
this.setVisible(true);
//注册监听事件
calButton.addActionListener(this);
closeButton.addActionListener(this);

}
public static void main(String[] args) {
// TODO Auto-generated method stub
new CalculateDemo();


}
@Override
public void actionPerformed(ActionEvent e) {
//判断事件是否计算按钮
if(e.getSource()==calButton)
calculate();
if(e.getSource()==closeButton)
shutDown();

}


    //实现关闭方法
private void shutDown() {
System.exit(0);
}
//实现计算方法
private void calculate() {
String message =messageText.getText();
if(message.length()==0){
JOptionPane.showMessageDialog(null,"请输入圆的半径!'","提示",1);
}
else{
//将字符穿串转换成整形
double radius =Integer.parseInt(message);
theCircle =new Circle(radius);
double theRadius=theCircle.getRadius();
double grith=theCircle.calGirth();
double area=theCircle.calArea();
/*在文本区域显示计算结果,小数点保留两位*/
resultText.setText("计算机结果如下:");
resultText.append("\n圆的周长是:"+new DecimalFormat("#.00").format(grith));
resultText.append("\n圆的面积是:"+new DecimalFormat("#.00").format(area));
}


}

}

package com.dxxy.interaction;


public class Circle {
private double radius;
public Circle(double radius){
setRadius(radius);
}
//setter
public void setRadius(double radius){
this.radius=radius;
}
//getter
public double getRadius(){
return radius;
}
//计算周长
public double calGirth(){
return 2*3.14159*radius;
}
//计算面积
public double calArea(){
return 3.14159*radius*radius;
}


}