新手,就是完全照书上码了一段,但怎么会有这些提示?![还有一张传不上去这都是些什么问题?麻烦大致讲下 谢谢代码如下 import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Test extends JFrame implements ActionListener{
JLabel lbl1,lbl2;
JTextField txt1,txt2,txtResult;
JButton btnCalc;
public Test(){
super("我的第一个Swing程序");
txt1=new JTextField(5);
lbl1=new JLabel("=");
txtResult=new JTextField(7);
txtResult.setEditable(false);
btnCalc=new JButton("计算");
btnCalc.addActionListener(this);
Container c=getContentPane();
c.setLayout(new FlowLayout());
c.add(txt1);
c.add(lbl1);
c.add(txt2);
c.add(lbl2);
c.add(txtResult);
c.add(btnCalc);
setSize(500,100);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e){
float num1=0,num2=0,result=0;
try{
num1=Float.parseFloat(txt1.getText());
num2=Float.parseFloat(txt2.getText());
result=num1+num2;
}catch(Exception ex){
txtResult.setText("数据非法!");
return;
}
txtResult.setText(Float.valueOf(result).toString());
}
public static void main(String[] args){
new Test();
}
}
3 回答
凤凰求蛊
TA贡献1825条经验 获得超4个赞
虽然你没有直接实现Serializable,接口,但你继承的javax.swing.JFrame这个类实现了Serializable接口。
个人建议学习类的时候,留意下类实现哪些了接口(接口你已经学习过的)。用面向对象的思想去看类实现了哪些接口,可以理解为对象应该具备哪些功能(所以实现对应的接口)。
前几天在家没网,回复的有点慢。
蛊毒传说
TA贡献1895条经验 获得超3个赞
你写的这个类实现 java.io.Serializable 接口,实现该接口表示以启用其序列化功能。提示 private static final long serialVersionUID,添加一个final修饰的序列化版本号(变量的值不可以改变)。
如果你没有添加serialVersionUID,并且修改了成员变量,就可能抛出一个InvalidClassException异常。
其实,这个提示并不是错误,只是一个警告,表示你写的代码可能会出现问题。
慕村225694
TA贡献1880条经验 获得超4个赞
这个东西是在你的类进行序列化传输的时候,进行序列化和反序列化的需要使用的。这个值就相当类的id值。
但是IDE考虑到如果缺少这个值,反序列化话的时候会出现意想不到的结果,所以建议你显式声明这个值。
添加回答
举报
0/150
提交
取消