我正在研究一个从用户那里得到像x^2 + t这样的表达式的绘图器,然后会询问用户x和t的范围。 t在这里是计时器变量。 所以在x^2 + t中,用户例如将选择-10到10代表x和1到5代表t。现在通过点击GUI程序中的绘图按钮,代码将开始绘制从最小t(这里为1)开始绘制表达式,并且在每秒(或任何时间段)之后将t值增加1并且用新t绘制表达式(2 ,3直到达到最大范围)。 如何使事件处理程序来做到这一点?我找到了绘制多个图形的方法,但是我无法将延迟从最小值延伸到最大值。 我知道我应该使用定时器,但我不知道如何在代码图形绘图仪在java中的计时器
的Link,这部分用于整个代码
这是应该改变的绘图类代码的一部分:
// Grapher
drawButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
String testSpring = null;
String tVarString = null;
for (int i = 0; i < 5; i++) {
testSpring = inputExpression;
tVarString = String.valueOf(i);
testSpring = testSpring.replaceAll("t", tVarString);
Equation equation = new Equation(testSpring);
graph.addEquation(equation);
}
}
catch (EquationSyntaxException e) {
e.printStackTrace();
}
}
});
这是节目的图象:
我p只是通过点击绘图按钮 来运行程序,但是如果这个计时器可能会影响JSlider ,所以t的最小值和最大值将是Jslider的最小值和最大值,并且通过点击绘图就可以开始绘图了时间滑块旋钮将在价值点在t
看看[Swing Time r](http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html) – MadProgrammer 2015-02-24 20:51:19
@MadProgrammer我已经做到了。我试过不同的方法来实现计时器,但它已经失败 你能更具体地说明如何改变这个吗? – Vicarious 2015-02-24 20:52:59
请记住,一个'Timer'只是一个伪循环 – MadProgrammer 2015-02-24 21:12:33