怎样在JAVA中使按钮的操作可以连续
bargainB.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerform...
bargainB.addActionListener(new java.awt.event.ActionListener(){
public void actionPerformed(ActionEvent e){
double Psmax,Psmin,Psx,Psx_1,Pbx,Pbx_1,Pmin;
int n,i,k;
Psmax=500;
Psmin=100;
n=20;
Pbx_1=0;
Psx_1=500;
k=3;
i=0;
while(i<=n)
{i++;
Psx=Double.parseDouble(bpriceTF.getText());
if(Pbx_1>=Psmin)
Pmin=Pbx1_1;
else
Pmin=Psmin;
if ((Pbx-Pbx_1)>=(0.1*Psmax))
Psx=Psmax-(Math.pow(n,k))*(1/(Psmax-Pmin))*(Math.pow(i,k));
else
Psx=Pmin+(Math.pow(n,k))*(1/(Psmax-Pmin))*(Math.pow(n-i,k));
if(Psx>=Psx_1)
Psx=0.5*(Psx_1+Pbx);
if (Psx<Psmin)
Psx=Psmin;
Psx_1=Psx;
Pbx_1=Pbx;
spriceTF.setText(""+Psx);
timesTF.setText(""+(n-i));}
}
这是我编写的一个按钮的响应事件,设想中的操作是,点击一下按钮就进行一次操作,可以循环点击,后次点击与前次点击有关系的。但执行这个程序时,却发现进行不了,好象成单独点击事件了。由于才学JAVA,不知道是不是JAVA中的按钮是不能进行这样的操作啊,如果可以应该怎样做呢。
就是想点一下,得到一个计算值,然后把这个值作为下一次点击的一个变量,再点击下,再得到一个计算值,如此循环啊,这个在程序中可以看出来的啊,表示很难的一个计算程序。 展开
public void actionPerformed(ActionEvent e){
double Psmax,Psmin,Psx,Psx_1,Pbx,Pbx_1,Pmin;
int n,i,k;
Psmax=500;
Psmin=100;
n=20;
Pbx_1=0;
Psx_1=500;
k=3;
i=0;
while(i<=n)
{i++;
Psx=Double.parseDouble(bpriceTF.getText());
if(Pbx_1>=Psmin)
Pmin=Pbx1_1;
else
Pmin=Psmin;
if ((Pbx-Pbx_1)>=(0.1*Psmax))
Psx=Psmax-(Math.pow(n,k))*(1/(Psmax-Pmin))*(Math.pow(i,k));
else
Psx=Pmin+(Math.pow(n,k))*(1/(Psmax-Pmin))*(Math.pow(n-i,k));
if(Psx>=Psx_1)
Psx=0.5*(Psx_1+Pbx);
if (Psx<Psmin)
Psx=Psmin;
Psx_1=Psx;
Pbx_1=Pbx;
spriceTF.setText(""+Psx);
timesTF.setText(""+(n-i));}
}
这是我编写的一个按钮的响应事件,设想中的操作是,点击一下按钮就进行一次操作,可以循环点击,后次点击与前次点击有关系的。但执行这个程序时,却发现进行不了,好象成单独点击事件了。由于才学JAVA,不知道是不是JAVA中的按钮是不能进行这样的操作啊,如果可以应该怎样做呢。
就是想点一下,得到一个计算值,然后把这个值作为下一次点击的一个变量,再点击下,再得到一个计算值,如此循环啊,这个在程序中可以看出来的啊,表示很难的一个计算程序。 展开
2个回答
展开全部
double Psmax,Psmin,Psx,Psx_1,Pbx,Pbx_1,Pmin;
int n,i,k;
Psmax=500;
Psmin=100;
n=20;
Pbx_1=0;
Psx_1=500;
k=3;
i=0;
这些变量每次事件进来都会被赋值,所以结果都一样,需要改变的数量得从外面传进来 像 bpriceTF.getText() 一样,然后把计算过的值再传出去
int n,i,k;
Psmax=500;
Psmin=100;
n=20;
Pbx_1=0;
Psx_1=500;
k=3;
i=0;
这些变量每次事件进来都会被赋值,所以结果都一样,需要改变的数量得从外面传进来 像 bpriceTF.getText() 一样,然后把计算过的值再传出去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你能不能说一下你想干什么?每点一下做什么操作?再点一下又希望怎样?
我建议你让类继承事件接口,然后实现所有方法。
你现在的写法更适合用在for循环里
其次你要把
double Psmax,Psmin,Psx,Psx_1,Pbx,Pbx_1,Pmin;
int n,i,k;
Psmax=500;
Psmin=100;
n=20;
Pbx_1=0;
Psx_1=500;
k=3;
i=0;
这些变量都放到外面,而不是放在事件里成为局部变量。
大概的方法就是事件里只写一次完整的计算过程,然后把算好的数据放到text里,当你再次点击时重新从text中获取数值,然后做计算,再放回text中
不知道我是否说明白了?
我建议你让类继承事件接口,然后实现所有方法。
你现在的写法更适合用在for循环里
其次你要把
double Psmax,Psmin,Psx,Psx_1,Pbx,Pbx_1,Pmin;
int n,i,k;
Psmax=500;
Psmin=100;
n=20;
Pbx_1=0;
Psx_1=500;
k=3;
i=0;
这些变量都放到外面,而不是放在事件里成为局部变量。
大概的方法就是事件里只写一次完整的计算过程,然后把算好的数据放到text里,当你再次点击时重新从text中获取数值,然后做计算,再放回text中
不知道我是否说明白了?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询