Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java科学计算器的多参数函数和高级文本显示_Java_User Interface_Jtextfield_Calculator_Jtextarea - Fatal编程技术网

java科学计算器的多参数函数和高级文本显示

java科学计算器的多参数函数和高级文本显示,java,user-interface,jtextfield,calculator,jtextarea,Java,User Interface,Jtextfield,Calculator,Jtextarea,因此,我一直在为一个学校项目使用Java编程一个科学计算器,我在这里陷入了两件事 添加函数,如sin,cos,tan,root(base,n)等。有了这些,我就无法分离参数了。例如,root(base,n)。我可以自己找出如何读取方程式,我正在使用调车场算法将方程式转换为RPN。我一直遵循伪代码算法来实现它。我只是不知道如何允许用户只使用屏幕上的GUI添加这两个参数 实现高级显示。因此,我所说的显示不仅仅是一行文字,而是多行文字,如度/弧度模式,前面的等式和答案,以及当前等式/答案。如果我的

因此,我一直在为一个学校项目使用Java编程一个科学计算器,我在这里陷入了两件事

  • 添加函数,如
    sin
    cos
    tan
    root(base,n)
    等。有了这些,我就无法分离参数了。例如,
    root(base,n)
    。我可以自己找出如何读取方程式,我正在使用调车场算法将方程式转换为RPN。我一直遵循伪代码算法来实现它。我只是不知道如何允许用户只使用屏幕上的GUI添加这两个参数

  • 实现高级显示。因此,我所说的显示不仅仅是一行文字,而是多行文字,如
    度/弧度模式
    ,前面的等式和答案,以及当前等式/答案。如果我的解释不好,这可能有助于说明我的观点: 目前,我的显示器使用一个简单的JTextField,我知道它对我想做的事情的限制,我肯定需要更改它。JTextField是一种临时的方式来显示输出,直到我能够正确显示为止

我的计算器GUI当前如下所示:

它基本上有两个字符串,一个是要求值的字符串,另一个是屏幕上显示的字符串,带有无法在等式中求值的Unicode等(因此是二次幂符号和x,而不是星号)

对于第一个问题,我认为左箭头和右箭头应该在arg1、arg2等之间移动,但我不知道如何实现这一点

如果您能在上述问题上提供任何帮助,我们将不胜感激。我已经试着解决这个问题好几个小时了

谢谢。

考虑到根(base,n)=base^(1/n),输入逻辑可能类似。我建议当用户点击n-root按钮时,左括号打开,显示屏(或状态栏)指示他们必须进入底部。当它们以右括号结束时,它们然后输入n


对于高级显示,我不太确定,可能是JFormattedTextField

所以它看起来像根(基)n,是的,看起来是最简单的方法。你还试过什么?输入n后,显示可能会更新,以反映作为第n个根(表达式),我没有尝试太多。。。我真的不知道从哪里开始。我想把它格式化为
root(arg1,arg2)
(字符串“arg1”替换为
base
,字符串arg2`替换为
n
),但我也不知道怎么做。有一件事是肯定的,
root(base)n
在当前设置中如果没有大量的数据或重构就无法工作。。。基数和n必须在括号内,否则你会被n乘以。需要一个分隔符来分隔它们,即逗号。