goto这个关键字在java里面是存在的,但是是不能用的,呵呵
解决方案 »
- 是否在构造函数中的操作越少越好?为什么?
- 今天学了接口 可不知道他是如何实例化的
- 请问一个java调用vc编写的动态库的问题,除JNI外是不是还有其它的办法?
- 关于java学习的问题
- 一个系统多个Java版本,正确的启动选择
- 对html格式的文本进行指定数据提取的问题
- 高分求教:闭包和回调! 高手指教!!~~~~谢谢!!
- thinking in java 中的一段话请教大家
- JCreator Pro的问题
- 高分求解,请高手们帮忙
- 两个非常简单的问题。
- 大哥们,我无语了,关于 Exception in thread "main" java.lang.NoClassDefFoundError:f:\test
import java.awt.event.*;public class Mygridbag extends Frame implements ActionListener
//这里实现actionlistener接口,不要一个个new ActionListener
{
Button cmdSum, cmdAve, cmdOp;
Label[] lbl=new Label[5];
TextField[] txtF = new TextField[5];
TextField txtFF;
GridBagLayout gridBagLayout;
GridBagConstraints gridBagConstraints; public Mygridbag(String s)
{
super(s);
gridBagLayout = new GridBagLayout();
setLayout(gridBagLayout);
gridBagConstraints = new GridBagConstraints(); //LABEL
lbl[0] = new Label(" 语文: ");
lbl[1] = new Label(" 数学: ");
lbl[2] = new Label(" 英语: ");
lbl[3] = new Label(" 总分: ");
lbl[4] = new Label("平均成绩: ");
for(int i=0; i<5; i++)
{
addComponent(lbl[i], i+1, 1, 1, 1);
}
// TextField
for(int i=0; i<5; i++)
{
txtF[i] = new TextField("", 10);
}
for(int i=0; i<3; i++)
{
addComponent(txtF[i], i+1, 2, 2, 1);
}
addComponent(txtF[3], 4, 2, 3, 1);
addComponent(txtF[4], 6, 2, 3, 1);
txtFF = new TextField("", 25);
addComponent(txtFF, 7, 2, 4, 1);
txtF[3].setEnabled(false);
txtF[4].setEnabled(false);
txtFF.setEnabled(false);
//BUTTON
cmdSum = new Button("总分计算");
cmdAve = new Button("计算平均分");
cmdOp = new Button("学习评定");
addComponent(cmdSum, 4, 3, 1, 1);
addComponent(cmdAve, 5, 3, 1, 1);
addComponent(cmdOp , 6, 1, 1, 1);
cmdSum.setEnabled(true);
cmdAve.setEnabled(false);
cmdOp.setEnabled(false);
cmdSum.addActionListener(this); //分别监听action事件
cmdAve.addActionListener(this);
cmdOp.addActionListener(this);
}//构造
//独立的actionPerformed方法
public void actionPerformed(ActionEvent e)
{ // 若所有TextField中数据符合要求(是float, 在取值范围内),
// 得出结果显示在响应的文本框中; 同时另两个按钮可用.
float F[] = new float[3];
float sum=0;
int i;
if(e.getSource()==cmdSum){ // Sum
for ( sum=i=0; i<3; i++)
{
if ( IsFloat( txtF[i].getText() ) )
{
F[i] = (float) Float.parseFloat(txtF[i].getText());
if ( ! Okfloat(F[i]) )
{
Error(i);
break;
}//if
else
{
sum = sum + F[i];
}
}//if
else
{
Error(i);
break;
}
}// for
if(i == 3) // 正常退出
{ // 总分
txtF[3].setEnabled(true);
txtF[3].setText((""+sum) );
txtF[3].setEnabled(false);
// Button
cmdAve.setEnabled(true);
cmdOp.setEnabled(true);
}
}// Sum if(e.getSource()==cmdAve){ // Ave
float ave= (float)Double.parseDouble(txtF[3].getText());
txtF[4].setEnabled(true);
txtF[4].setText("" + ave/3 ); // ?? 如何做到只保留一位小数
// txtF[4].setText("" + (float(int(ave/3*10))/10.0) ); // ?? 错在哪里??
txtF[4].setEnabled(false);
} // Ave
if(e.getSource()==cmdOp){ // 评定
// 再说
}
} private boolean IsFloat(String str)
{
int flag_Dec = 0;
if(str.length()==0)
{
return false;
} for(int ilen=0; ilen< (str.length()); ilen++)
{
if(str.charAt(ilen) == '.')
{
flag_Dec++;
if(flag_Dec > 1)
{
return false; // 只能有一个小数点
}
else
{
continue;
}
}//if
if( str.charAt(ilen) <'0' || str.charAt(ilen)> '9')
{
return false;
}
}//for
return true;
}//IsFloat
private boolean Okfloat(float a)
{
if (a>=0 && a<=100)
{
return true;
}
else
{
return false;
}
}//Okfloat private void Error(int i){
txtF[i].setText("0");
txtF[i].requestFocus();
}
public void addComponent(Component c, int row, int col,
int nrow, int ncol)
{
gridBagConstraints.gridx = col;
gridBagConstraints.gridy = row;
gridBagConstraints.gridwidth = ncol;
gridBagConstraints.gridheight = nrow;
gridBagLayout.setConstraints(c, gridBagConstraints);
add(c);
}
public static void main(String[] args)
{
Mygridbag mygb = new Mygridbag("学生成绩录入");
mygb.setSize(400, 220);
mygb.setResizable(false);
mygb.show();
}
}