很久前搞得小东西,发上来灌灌水。
import java.awt.*;
import java.awt.event.*;
public class GradeDemo2
{
public int n;
public Frame f,f2;
public Button b,b2;
public Label lb1,lb2,lb3;
public TextField tf1,tf2;
public TextField[] tf=new TextField[100];
GradeDemo2(){
init1();
}
public void init1(){
f2=new Frame("总计工具");
f2.setBounds(300,100,650,550);
f2.setBackground(Color.LIGHT_GRAY);
f2.setLayout(null);
b2=new Button("确认");
b2.setBounds(250,250,40,20);
lb3=new Label("输入课程数量");
lb3.setBounds(290, 230, 80, 20);
tf1=new TextField();
tf1.setBounds(290,250,80,20);
f2.add(b2);
f2.add(tf1);
f2.add(lb3);
myEvent1();
f2.setVisible(true);
}
public void init(){
f=new Frame("总计工具");
f.setBounds(300,100,650,550);
f.setBackground(Color.LIGHT_GRAY);
f.setLayout(null);//布局为自定义
b=new Button("计算结果");
b.setBounds(250,70+20*n,60,20);
lb1=new Label("科目成绩");
lb1.setBounds(new Rectangle(250,50,85,20));
lb2=new Label("学分");
lb2.setBounds(new Rectangle(350,50,85,20));
f.add(b);
f.add(lb1);
f.add(lb2);
try{
for(int i=0,j=0;j<n;j++){
tf[i]=new TextField();
tf[i].setBounds(250,70+20*j,50,20);
f.add(tf[i]);
i++;
tf[i]=new TextField();
tf[i].setBounds(350,70+20*j,50,20);
f.add(tf[i]);
i++;
}
}catch(Exception e){
throw new RuntimeException("异常");
}
tf2=new TextField();
tf2.setBounds(310,70+20*n,80,30);
f.add(tf2);
myEvent();
f.setVisible(true);
}
public void myEvent(){
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
calculate();
}
});
}
public void myEvent1(){
f2.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
b2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if((n=Integer.parseInt(tf1.getText()))>0)
{
f2.setVisible(false);
init();
}
else
tf1.setText("输错");
}
});
}
public void calculate(){
float sum1=0,sum2=0;
for(int i=0;i<2*n;){
sum1+=Float.parseFloat(tf[i].getText())*Float.parseFloat(tf[i+1].getText());
sum2+=Float.parseFloat(tf[i+1].getText());
i+=2;
}
tf2.setText(sum1/sum2+"");
}
public static void main(String[] args)
{
new GradeDemo2();
}
}