要求:利用JTextField作为输入和输出组件求n!,并利用按钮完成程序的退出功能。我的问题是:代码没有提示错误,但是输入数字,希望它在JLabel中显示出结果,但是会报错,爆错类型大概...
要求:利用JTextField作为输入和输出组件求n!,并利用按钮完成程序的退出功能。
我的问题是:代码没有提示错误,但是输入数字,希望它在JLabel中显示出结果,但是会报错,爆错类型大概是unknown resource,求解答= =,我预计的错误是在Listener1,也不太确定。
然后我的代码是:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.FlowLayout;
public class ApplicationDemo extends JFrame {
private JTextField jtfInput;
private JButton btnCalculate;
private JLabel jlOutput;
private JButton Exit;
public ApplicationDemo(String title){
super(title);
double s=0;
btnCalculate= new JButton("计算");
JTextField jtfInput=new JTextField("请输入要计算的数:",20);
JLabel jtfOutput=new JLabel("n!的值为:");
Exit = new JButton("退出程序");
btnCalculate.addActionListener(new Listener1());
Exit.addActionListener(new Listener2());
setLayout(new FlowLayout());
add(jtfInput);
add(btnCalculate);
add(jtfOutput);
add(Exit);
setVisible(true);
setBounds(200,300,300,200);
}
class Listener1 implements ActionListener{
public void actionPerformed(ActionEvent e){
double s=0;
double n=Double.parseDouble(jtfInput.getText());
if(n>0)
{
n=n*(n-1);
n--;
}
s=n;
jlOutput.setText("所求数的阶乘为:"+s);
}
}
class Listener2 implements ActionListener{
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
public static void main(String[] args) {
new ApplicationDemo("求n的阶乘");
}
}
谢谢!
展开