四、 编写程序(共20分,第1题8分,第2题12分)
1、 定义一个数学类Factorial,类中提供一静态方法factor,该方法接受1个整数n,返
回∑n!的值。
2、 使用合适的布局,编写红绿灯显示程序,点击相应按钮,在文
本框分别显示“红灯”、“绿灯”或“黄灯”。(控件布局如右图所示)
1、public class Factorial {
public static int void factorial main(int n) { int k=1;
int val=0;
for (i=1; i<=n; i++) { k=k*i; val=val+k;
}
return val;
}
2、import java.awt.*; import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame{ public Calculator(){ this.getContentPane().add(new CalculatorPanel()); pack();
}
public static void main(String []args){ new Calculator().show();
}
}
class CalculatorPanel extends JPanel{ private JPanel panel; private JLabel display;
public CalculatorPanel(){ setLayout(new BorderLayout()); display=new JLabel(" ");
add(display,BorderLayout.NORTH);
ActionListener command=new CommandAction(); panel=new JPanel();
panel.setLayout(new GridLayout(1,3)); addButton("红灯",command);
addButton("黄灯",command);
}
addButton("绿灯",command);
add(panel,BorderLayout.CENTER); }
void addButton(String desp,ActionListener listener){ JButton btn=new JButton(desp);
btn.addActionListener(listener); panel.add(btn);
}
class CommandAction implements ActionListener{ }
public void actionPerformed(ActionEvent e){ String input=e.getActionCommand(); display.setText(input); }