java GUI初试

学面向对象,以java为设计语言,虽然老师不是讲java但是还是把java的基础知识大概讲了一下,速度当然很快,很少动手实践,这是自己抽时间照着课本做的图像化界面计算圆的周长面积。
/*
 *功能:测试GUI的使用,用户输入圆的半径,然后计算
 *时间:2012.11.3
 *作者:KDF5000
 *文件名:TestGui.java
 */
import java.awt.*;
import java.awt.event.*;

import javax.swing.*;
import java.text.*;
public class TestGui {

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

}

class CalculateDomo extends JFrame implements ActionListener
{
	Circle theCircle;
	JTextField messageText;
	JTextArea resultArea;
	JButton calButton;
	JButton closeButton;
	JButton clearButton;
	
	public CalculateDomo()
	{
		super("计算圆的面积和周长");
		
		Container c=this.getContentPane();
		c.setLayout(new GridLayout(2,1));
		JPanel centerPanel=new JPanel(new FlowLayout());
		
		messageText =new JTextField(5);
		JLabel messageLabel=new JLabel("请输入圆的半径: ");
		calButton =new JButton("计算");
		closeButton =new JButton("关闭窗口");
		resultArea =new JTextArea("计算结果:",4,20);
		
		centerPanel.add(messageLabel);
		centerPanel.add(messageText);
		centerPanel.add(calButton);
		centerPanel.add(closeButton);
		c.add(centerPanel);
		c.add(resultArea);
		
		//注册事件到容器
		calButton.addActionListener(this);
		closeButton.addActionListener(this);
		
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(360,200);
		this.setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		if(e.getSource()==calButton)
			calculate();
		if(e.getSource()==closeButton)
			shutDown();
	}
	
	private void calculate()
	{
		String message=messageText.getText();
		if(message.length()==0)
		{
			JOptionPane.showMessageDialog(null,"请输入半径!","提示",1);	
		}
		else
		{
			int radius=Integer.parseInt(message);
			theCircle=new Circle(radius);
			int theRadius=theCircle.getRadius();
			double girth=theCircle.calGirth();
			double area=theCircle.calArea();
			
			resultArea.setText("计算结果如下:");
			resultArea.append("\n圆的半径是:"+theRadius);
			resultArea.append("\n圆的周长是:"+new DecimalFormat("#.00").format(girth));
			resultArea.append("\n圆的面积是:"+new DecimalFormat("#.00").format(area));
		}
	}
	
	public void shutDown()
	{
		System.exit(0);
	}
	
}


//圆类
class Circle
{
	private int radius;
	
	public Circle(int radius)
	{
		this.radius=radius;
	}

	public int getRadius() {
		return radius;
	}

	public void setRadius(int radius) {
		this.radius = radius;
	}
	
	public double calArea()
	{
		return 3.14159*(this.radius^2);
	}
	
	public double calGirth()
	{
		return 2*3.14159*this.radius;
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值