Java程序员_编程开发学习笔记_网站安全运维教程_渗透技术教程

Java Swing余弦计算器程序解析

阿贵
9月30日发布 /正在检测是否收录...
温馨提示:
本文最后更新于2025年09月30日,已超过13天没有更新,若内容或图片失效,请留言反馈。

Java Swing余弦计算器程序解析

题目代码分析

137.png

以下是需要补全的Java Swing代码,功能是创建一个余弦计算器,支持弧度和角度两种单位:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Java_3 extends JFrame implements ActionListener{
    private double x=0;
    private double y=0;
    JTextField xval = new JTextField(10);
    
    JButton calcBtn = new JButton("计算");
    JTextArea result = new JTextArea(10,20);
    boolean isAngleRad=true;
    JButton  angleUnitBtn=new JButton("设成角度");
    void initFrame(){
        Container content = getContentPane();
        content.setLayout(new BorderLayout());
        JPanel calcPanel = new JPanel();        
        calcPanel.setLayout(new FlowLayout());
        //***************************Found*********************    
        calcPanel.add( _______________________ );
        calcPanel.add(xval);
     
        calcPanel.add(calcBtn)  ;
   
        calcPanel.add(angleUnitBtn); 
        
        content.add(calcPanel,"North");
        calcBtn.addActionListener(this); 
        //***************************Found*********************        
        angleUnitBtn._______________________ ; 
        
        content.add(result,"Center");
        //***************************Found*********************    
        result._______________________;
    }
    public Java_3(){
        super("计算余弦函数");
        setSize(500,200);
        initFrame();        
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public void actionPerformed(ActionEvent e){
        if (e.getSource()== calcBtn){
            String str; 
            if(isAngleRad) {  
                x=Double.parseDouble(xval.getText());
            str="cos("+x+")=";
            }else {
                x=Double.parseDouble(xval.getText())/180*3.1415926;
                //***************************Found*********************    
            str="cos("+ _______________________ +"*3.14159/180)=";
            };   
            y=Math.cos(x);
            result.append(str+y+'\n'); 
        }else if(e.getSource()== angleUnitBtn){
            if(isAngleRad)
                angleUnitBtn.setText("设成弧度");
            else 
                //***************************Found*********************    
                angleUnitBtn.setText( _____________________ );
            //***************************Found*********************    
           isAngleRad= __________________ ;
        }
   }

   public static void main(String[] args){
       new Java_3();
   }
}

空白处解析

  1. 第一个空白处calcPanel.add( _______________________ );

    • 解析:需要添加一个标签说明输入框的用途
    • 答案:new JLabel("输入值:")
  2. 第二个空白处angleUnitBtn._______________________ ;

    • 解析:为角度单位按钮添加事件监听器
    • 答案:addActionListener(this)
  3. 第三个空白处result._______________________;

    • 解析:文本区域通常需要设置为可滚动或不可编辑
    • 答案:setEditable(false)(设置为不可编辑,只用于显示结果)
  4. 第四个空白处str="cos("+ _______________________ +"*3.14159/180)=";

    • 解析:需要显示用户输入的原始角度值
    • 答案:xval.getText()
  5. 第五个空白处angleUnitBtn.setText( _____________________ );

    • 解析:切换按钮文本,当从弧度切换回角度时显示"设成角度"
    • 答案:"设成角度"
  6. 第六个空白处isAngleRad= __________________ ;

    • 解析:切换角度单位状态,取当前值的相反值
    • 答案:!isAngleRad

完整正确代码

Java Swing实现余弦计算器:从弧度到角度的转换

在科学计算中,余弦函数是一个常用的数学函数,它可以接受弧度或角度作为输入。本文将介绍如何使用Java Swing创建一个可视化的余弦计算器,支持弧度和角度两种单位的切换,并展示计算结果。

1. 程序功能概述

这个余弦计算器具有以下功能:

  • 提供输入框让用户输入数值
  • 支持弧度和角度两种计算单位,并可相互切换
  • 计算并显示余弦值结果
  • 保留历史计算记录

程序界面简洁直观,上部为输入和控制区域,下部为结果显示区域。

2. 界面设计与布局

程序使用了Swing的布局管理器来组织界面元素:

  1. 整体布局:使用BorderLayout将界面分为北部(输入区域)和中部(结果区域)
  2. 输入区域

    • 使用FlowLayout布局的JPanel
    • 包含一个提示标签、一个输入文本框、一个计算按钮和一个单位切换按钮
  3. 结果区域

    • 使用JTextArea组件显示计算结果
    • 设置为不可编辑,只用于展示历史计算记录

关键代码实现:

Container content = getContentPane();
content.setLayout(new BorderLayout());
JPanel calcPanel = new JPanel();        
calcPanel.setLayout(new FlowLayout());
// 添加各种组件到面板
content.add(calcPanel,"North");
content.add(result,"Center");

3. 事件处理机制

程序实现了ActionListener接口来处理用户交互:

  1. 计算按钮事件

    • 获取用户输入的数值
    • 根据当前单位(弧度/角度)进行计算
    • 将结果追加到文本区域
  2. 单位切换按钮事件

    • 切换单位状态(弧度↔角度)
    • 更新按钮显示文本

事件处理的核心代码:

public void actionPerformed(ActionEvent e) {
    if (e.getSource() == calcBtn) {
        // 处理计算逻辑
    } else if (e.getSource() == angleUnitBtn) {
        // 处理单位切换逻辑
    }
}

4. 核心计算逻辑

程序的核心是余弦值的计算,需要处理两种单位:

  1. 弧度计算

    • 直接使用Math.cos()方法计算
    • Math.cos()方法本身接受弧度作为参数
  2. 角度计算

    • 先将角度转换为弧度:弧度 = 角度 × π / 180
    • 再使用Math.cos()方法计算

代码实现:

if (isAngleRad) {  // 弧度计算
    x = Double.parseDouble(xval.getText());
    str = "cos(" + x + ")=";
} else {  // 角度计算
    x = Double.parseDouble(xval.getText()) / 180 * 3.1415926;
    str = "cos(" + xval.getText() + "*3.14159/180)=";
}
y = Math.cos(x);
result.append(str + y + '\n');

5. 单位切换功能

单位切换是通过一个布尔变量isAngleRad实现的:

  • isAngleRad = true:表示当前使用弧度
  • isAngleRad = false:表示当前使用角度

切换逻辑:

if (isAngleRad)
    angleUnitBtn.setText("设成弧度");
else 
    angleUnitBtn.setText("设成角度");
isAngleRad = !isAngleRad;  // 取反值切换状态

6. 程序改进建议

这个基础计算器可以从以下几个方面进行改进:

  1. 输入验证:添加输入验证,处理非数字输入的情况
  2. 精度控制:允许用户设置计算结果的小数位数
  3. 清除功能:添加清除按钮,可清除输入框和结果区域
  4. 科学计数法:支持大数值的科学计数法显示
  5. 更多函数:扩展支持正弦、正切等更多三角函数

通过这个实例,我们学习了Swing界面设计、事件处理、数学计算和状态管理等知识。这个程序虽然简单,但展示了GUI应用程序的基本架构和开发思路,对于理解Java桌面应用开发具有重要意义。

喜欢就支持一下吧
点赞 1 分享 收藏
评论 抢沙发
OωO
取消 登录评论