java GUI初试

Wesley13
• 阅读 544

学面向对象,以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;
    }
}
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java基础知识随身记
2018年11月12日20:51:35一、基础知识:1、JVM、JRE和JDK的区别:JVM(JavaVirtualMachine):java虚拟机,用于保证java的跨平台的特性。  java语言是跨平台,jvm不是跨平台的。JRE(JavaRuntimeEnvironment):java的运行环境,包括jvmjava的核心类
DaLongggggg DaLongggggg
3年前
python刷题-圆的面积
问题描述给定圆的半径r,求圆的面积。输入格式输入包含一个整数r,表示圆的半径。输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。说明:在本题中,输入是一个整数,但是输出是一个实数。对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不
Jack Jack
2年前
Java 计算器小程序
该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行加、减、乘、除、操作。其程序要求为设计一个图形界面(GUI)的计算器应用程序,完成简单的加法、减法、乘法、除法运算,且参与计算的数字和所得结果可以有小数点、正负号,同时还要具备清零功能。一、需求分析根据项目简介中的项目要求,我们将其具体需求做如下分析:1.要使用
Wesley13 Wesley13
2年前
Java 图形化界面设计(GUI)实战练习(代码)
关于Java图形化界面设计,基础知识网上可搜,下面简单介绍一下重点概念,然后就由浅入深代码实例。程序是为了方便用户使用的,Java引入图形化界面编程。1.JFrame是容器类2.AWT是抽象窗口组件工具包,是Java最早的用于编写图形节目应用程序的开发包。3.Swing是为了解决AWT存在的问题而新开发的包,它以AWT为基础
Easter79 Easter79
2年前
Threejs 实现扩散圆环效果
ThreeJS实现扩散圆效果代码实现//r圆半径//init初始圆半径//ring圆环大小//color颜色THREE.Vector3//speed速度functionscatterCircle(r,init,ring,color,speed){
Wesley13 Wesley13
2年前
2017.7.26开始学习
上个月学多学少一些些,基础,从今天开始重新复习下。1、java程序本身不是开发单机版程序的语言,是开发网络的。2、一般在java中是很少使用图形界面进行操作的。3、java的核心知识点:!(https://static.oschina.net/uploads/space/2017/0726/231334_um5Z_3607205.jpg)
Wesley13 Wesley13
2年前
JavaSE复习~Java语言发展史
Java概述什么是Java语言?Java语言是美国Sun公司(StanfordUniversityNetWork),在1995年推出的高级编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。Java是一种可以撰写跨平台应用程序的面向对象的程序设计语
Wesley13 Wesley13
2年前
Java与C++的区别
C和Java的区别:(面试问到这个问题,特来总结一下根据CPrime和ThinkinJava两本书总结而来)尽管Java是基于C的的,但是相比之下,Java是一种更纯粹的面向对象程序设计语言。在Java中,一切都被视为对象。1\.C创建对象之后,需要再使用完将其调用delete方法将其销毁;Java有垃圾回收机制,用
Stella981 Stella981
2年前
JVM的基础知识点Java的内存模型
阅读文本大概需要3分钟。Java虚拟机是Java工程师必学的进阶功课,这段时间开始死磕JVM。今天梳理一下JVM的基础知识点Java的内存模型!!(https://oscimg.oschina.net/oscnet/d48bb92f83f6e209089d8c03dc2ba35cf45.png)程序计数器是什么:程序计数器是
Wesley13 Wesley13
2年前
Java面向对象技术
问题及答案来源自《Java程序员面试笔试宝典》第四章Java基础知识4.2面向对象技术1、面向对象与面向过程有什么区别?看下面一个实例即可:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候依次调用;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而