大家好,在下有一个比较基础的问题想问你们:
我编写了一个类,类里面有一个要经常被调用的方法,该方法返回一个数学函数的函数值
class PicPanel extends JPanel
{
……………………
……………………
public double f(double x)
{
return Math.sin(x);
}}
但是找我这样编写程序的话,函数只能用编写者(我)来确定,
我想让用户自己输入函数想解析表达式,然后在调用这个函数,
请问大家,有什么好的方法或建议吗?
我编写了一个类,类里面有一个要经常被调用的方法,该方法返回一个数学函数的函数值
class PicPanel extends JPanel
{
……………………
……………………
public double f(double x)
{
return Math.sin(x);
}}
但是找我这样编写程序的话,函数只能用编写者(我)来确定,
我想让用户自己输入函数想解析表达式,然后在调用这个函数,
请问大家,有什么好的方法或建议吗?
//这样?
public class panel { public static void main(String[] args) { test("3*4");
} static void test(String s) {
String[] array = s.split("\\s*\\*\\s*");
int int1 = Integer.valueOf(array[0]);
int int2 = Integer.valueOf(array[1]);
}
}
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.event.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class mynew
{
public static void main(String[] args)
{
JFrame frame = new JFrame ( "MY TRY!");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
PicPanel panel = new PicPanel();
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
}
}class PicPanel extends JPanel
{
private int XPOS,YPOS,x1,x2,y1,y2,k=100;
private float a,b,h;
private JLabel kLabel;
public PicPanel()
{
setPreferredSize(new Dimension(800,700)); h=(float)1/k;
a=-30;
b=30;
XPOS=400;
YPOS=400;
kLabel = new JLabel("比例k:"+100);
add(kLabel); }
public void paintComponent(Graphics page)
{ super.paintComponent(page);
page.setColor(Color.red);
page.drawLine(XPOS,0,XPOS,2000); //画x轴
page.drawString("x轴",700,YPOS+15); page.drawLine(0,YPOS,2000,YPOS); //画y轴
page.drawString("y轴",XPOS+15,100);
for(double x=a;x<=b;x=x+h) //描点和坐标变换
{
x1=XPOS+(int)(k*x);
x2=XPOS+(int)(k*(x+h));
y1=YPOS-(int)(k*f(x));
y2=YPOS-(int)(k*f(x+h));
page.drawLine(x1,y1,x2,y2);
}
}
public double f(double x)
{
return Math.sin(x);
//就是这里啊,如果我想让用户自己输入一个函数,不知道应该怎么弄呢?
}}