java编写球体体积和面积_球体有哪些物品

java编写球体体积和面积_球体有哪些物品importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;publicclassVolumeextendsJFrameimplementsActionListener,ItemListener{JPanelp1,p2,p3;JRadioButtonrb1,rb2,rb3;ButtonGroupbg;JButton…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class Volume extends JFrame implements ActionListener,ItemListener{

JPanel p1,p2,p3;

JRadioButton rb1,rb2,rb3;

ButtonGroup bg;

JButton b1,b2;

JLabel l1,l2,l3,l4;

JTextField tf1,tf2,tf3,tf4;

public Volume(){

init();

this.add(p1,BorderLayout.NORTH);

this.add(p2,BorderLayout.CENTER);

this.add(p3,BorderLayout.SOUTH);

this.setTitle(“Volume Calculator”);

this.pack();

this.setLocationRelativeTo(null);//窗口居中

this.setVisible(true);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void init(){

rb1 = new JRadioButton(“正方体”,true);

rb2 = new JRadioButton(“球  体”);

rb3 = new JRadioButton(“圆柱体”);

rb1.addItemListener(this);

rb2.addItemListener(this);

rb3.addItemListener(this);

rb1.addActionListener(this);

rb2.addActionListener(this);

rb3.addActionListener(this);

bg = new ButtonGroup();

bg.add(rb1);

bg.add(rb2);

bg.add(rb3);

p1 = new JPanel();

p1.setBorder(BorderFactory.createTitledBorder(“选择对象:”));

p1.add(rb1);

p1.add(rb2);

p1.add(rb3);

l1 = new JLabel(“边长:”);

l2 = new JLabel(“半径:”);

l3 = new JLabel(“高:”);

tf1 = new JTextField(4);

tf2 = new JTextField(4);

tf3 = new JTextField(4);

tf1.setEditable(true);

tf2.setEditable(false);

tf3.setEditable(false);

p2 = new JPanel();

p2.setBorder(BorderFactory.createTitledBorder(“输入参数:”));

p2.add(l1);

p2.add(tf1);

p2.add(l2);

p2.add(tf2);

p2.add(l3);

p2.add(tf3);

l4 = new JLabel(“体积:”);

tf4 = new JTextField(12);

tf4.setEditable(false);

b1 = new JButton(“GO”);

b1.addActionListener(this);

b2 = new JButton(“Help”);

b2.addActionListener(this);

p3 = new JPanel();

p3.setBorder(BorderFactory.createTitledBorder(“计算结果:”));

p3.add(b1);

p3.add(l4);

p3.add(tf4);

p3.add(b2);

}

public static void main(String[] args){

JFrame.setDefaultLookAndFeelDecorated(true);

JDialog.setDefaultLookAndFeelDecorated(true);

new Volume();

}

public void clear(){

tf1.setText(“”);

tf2.setText(“”);

tf3.setText(“”);

tf4.setText(“”);

}

public String getText(JTextField tf){

return tf.getText().trim();

}

public void shouDialog(){

JOptionPane.showMessageDialog(this, “参数只能为正数,请不要输入非法字符!”, “警告”, JOptionPane.WARNING_MESSAGE);

clear();

}

public  void itemStateChanged(ItemEvent ie){

if(ie.getItem()==rb1){

if(ie.getStateChange()==ItemEvent.SELECTED){

clear();

tf1.setEditable(true);

tf2.setEditable(false);

tf3.setEditable(false);

}

}else if(ie.getItem()==rb2){

if(ie.getStateChange()==ItemEvent.SELECTED){

clear();

tf2.setEditable(true);

tf1.setEditable(false);

tf3.setEditable(false);

}

}else if(ie.getItem()==rb3){

if(ie.getStateChange()==ItemEvent.SELECTED){

clear();

tf2.setEditable(true);

tf3.setEditable(true);

tf1.setEditable(false);

}

}

}

public void actionPerformed(ActionEvent ae){

if(ae.getSource()==b2){//”Help”

new Dialog(this);

}else if(ae.getSource()==b1){//”GO”

double volume = 0;

try{

if(rb1.isSelected()){//正方体

if(!getText(tf1).equals(“”)){

double size = Double.parseDouble(getText(tf1));

if(size>0){

volume = size*size*size;

tf4.setText((double)((int)Math.round(volume*1000)/1000.000)+””);

}else{

shouDialog();

}

}

}else if(rb2.isSelected()){//球体

if(!getText(tf2).equals(“”)){

double radius = Double.parseDouble(getText(tf2));

if(radius>0){

volume = 4*Math.PI* radius*radius*radius/3;

tf4.setText((double)((int)Math.round(volume*1000)/1000.000)+””);

}else{

shouDialog();

}

}

}else if(rb3.isSelected()){//圆柱体

if(!getText(tf2).equals(“”)&&!getText(tf3).equals(“”)){

double radius = Double.parseDouble(getText(tf2));

double height = Double.parseDouble(getText(tf3));

if(radius>0&&height>0){

volume = Math.PI*radius*radius*height;

tf4.setText((double)((int)Math.round(volume*1000)/1000.000)+””);

}else{

shouDialog();

}

}

}

}catch(Exception e){

shouDialog();

}

}

}

}

class Dialog extends JDialog{

JLabel[] l;

JButton b;

JPanel p1,p2,p3;

public Dialog(Frame f){

super(f,true);

p1 = new JPanel(new FlowLayout());

p1.setBorder(BorderFactory.createTitledBorder(“参数描述:”));

p2 = new JPanel(new GridLayout(0,1));

p2.setBorder(BorderFactory.createTitledBorder(“体积公式:”));

p3 = new JPanel(new FlowLayout());

p3.setBorder(BorderFactory.createEtchedBorder());

String[] s = {“a: 边长, r: 半径, h: 高, π: 圆周率(3.14159265..)”,

”    正方体: a*a*a”,

”    球  体: (4/3)*π*r*r*r”,

”    圆柱体: π*r*r*h”,

“Made by Kingpo in Wuhan QQ:281623469”};

l = new JLabel[s.length];

for(int i=1;i

l[i] = new JLabel(s[i]);

p2.add(l[i]);

}

l[0] = new JLabel(s[0]);

p1.add(l[0]);

l[4] = new JLabel(s[4]);

l[4].setFont(new Font(“”,Font.ITALIC,12));

l[4].setForeground(Color.GRAY);

b = new JButton(“OK”);

b.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

setVisible(false);

}

});

p3.add(l[4]);

p3.add(b);

this.add(p1,BorderLayout.NORTH);

this.add(p2,BorderLayout.CENTER);

this.add(p3,BorderLayout.SOUTH);

this.setTitle(“帮助…”);

this.setSize(f.getSize());

this.setResizable(false);

this.setLocationRelativeTo(f);

this.setVisible(true);

}

}

2b7ed385e552d8e5d5bfdcd795e528a5.png

4a5191050a9fa40fed22450c0fc87155.png

12d8348c17f79a6063cbb56cd12b66f8.png

上面是实现了图形用户界面,功能全部实现了,还可以扩展。例如多加几个容器(圆锥体等)对象,多加几个公式(表面积等)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192683.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • blender2.9教程_赖世雄入门篇

    blender2.9教程_赖世雄入门篇Blender2.8基础(一)基础操作与常用快捷键▶Ctrl+N:创建新工程一、视图操作1、放大视图▶视图最大化显示:Ctrl+空格(左键点击视图任意地方可以选择视图,然后按Ctrl+空格可以最大化显示视图。)▶切换全屏模式:Ctrl+Alt+空格2、切换视图▶切换视图:Alt(按住不放)+按住中键上下或左右移动鼠标(每切换一次视图就必须重新按一下中键并移动鼠标)▶……

    2022年8月10日
    9
  • 人人商城生成app教程_人人商城APP打包教程(APICLOUD版)「建议收藏」

    人人商城生成app教程_人人商城APP打包教程(APICLOUD版)「建议收藏」一.APP环境搭建和配置编译1.登录APICLOUD后台新建应用step1注册账号注册apicloud账号并登录APICLOUD控制台step2新建应用再账户下面找到开发控制台=>开发控制台=>创建应用填写应用名和说明,必选NativeApp创建NativeApp2.开发工具下载安装APICLOUD开发工具:安装APICLOUD开发工具3.下载解压。然后运行apiclou…

    2025年6月25日
    3
  • cultureinfo 类 java_为国家,语言组合创建自定义CultureInfo

    cultureinfo 类 java_为国家,语言组合创建自定义CultureInfo我正在开发一个.net4.5应用程序,需要多语言支持多文化等.以下是国家/语言的示例列表俄罗斯/俄罗斯比利时/法国比利时/荷兰对于上述所有内容,可以根据上述文化名称创建CultureInfo对象ru-RUfr-BEnl-BE当用户进入站点时,我将Thread.CurrentThread.CurrentCulture和Thread.CurrentThread.CurrentUICulture设置…

    2022年6月19日
    24
  • 40个Unity游戏开发小阴招

    40个Unity游戏开发小阴招Unity游戏开发小技巧集结,不用谢我,我只是大自然的搬运工。借助Prefab暂存数据。可以直接在脚本的Inspector上填写,然后把整个GameObject拖成Prefab暂存。等要用的时候再拖出来。 DontDestroy模式,在跨场景的时候保持某些对象一直存在,不必要每次都重新加载,譬如显示广告的模块。 内置的Awake,Start,Update,FixedUpdate,LateUpdate函数,令开发者直接往游戏循环里加内容,非常方便快捷。 Input.MouseD.

    2025年8月6日
    1
  • Linux云服务器挖矿病毒(crypto和pnscan)导致CPU占用100%问题解决方案「建议收藏」

    Linux云服务器挖矿病毒(crypto和pnscan)导致CPU占用100%问题解决方案「建议收藏」木马攻击问题由来阐述我买了三年的阿里云服务器(在阿里云官网买的),已经使用了一年多了,平时拿来搭建网站,有时也拿来学习技术和开发测试,一直使用很稳定。直到近期我服务器上安装了docker并部署了springboot+mysql+nginx项目,就被攻击了。但就在今年的5月14号,我的服务器被木马攻击,然后被拿去挖矿了。我服务器的cpu持续维持在CPU100%.后果是直接导致我网站无法正常请求和响应。而且Linux服务器的root权限被窃取了。黑客在服务器/root/.ssh目录下生成了连root用户

    2022年5月1日
    56
  • redis 时间范围查询

    redis 时间范围查询这算是一种变相的在redis上面实现时间范围查询。我的使用场景介绍一下:redis在我们的项目里面是用来存储实体映射关系,比如user>pc这种一度关联,会统计某一个用户在一段时间内总共有多少个关联关系;当前事件携带的关联关系是否是新的。…

    2022年6月18日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号