【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”
这是一个GUI文件,由JButtonEvent和JButtonEventDemo组成,实现两个按钮互相切换的功能。但用eclipse调试时出现以上警告The serializable class JButtonEvent does not declare a static final serialVersionUID field of type long,而且调试没通过。请问这是什么原因?我学java没多久,希望各位给出详尽的解答。以下是是两个类,装在不同的包里。
package component;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import java.awt.*;
/**
* JButton事件响应组件
* 框架JFrame包含面板JPanel,面板JPanel包含组件JButton的层次关系
*/
public class JButtonEvent extends JFrame implements ActionListener{
//声明显示信息的标签
private JLabel message = new JLabel("Hello, Java World!");
//声明两个按钮
private JButton JBcn, JBen;
private JPanel JPButton, JPMessage;
//构造方法
public JButtonEvent(){
this.setTitle("测试按钮事件");
//建立按钮
JPButton = new JPanel();
JPMessage = new JPanel();
JPButton.setLayout(new FlowLayout());
JPMessage.setLayout(new FlowLayout());
JPMessage.add(message);
JPButton.add(JBcn = new JButton("中文"));
JPButton.add(JBen = new JButton("English"));
//把面板放置到框架中
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(JPMessage, BorderLayout.CENTER);
this.getContentPane().add(JPButton, BorderLayout.SOUTH);
//设置按钮的监听器
JBcn.addActionListener(this);
JBen.addActionListener(this);
//设置按钮的活动状态
JBen.setEnabled(false);
}
//处理按钮事件方法
public void actionPerformed(ActionEvent e){
if (e.getSource() == JBcn){
//显示英文按钮
//显示中文信息
message.setText("Java世界,您好!");
JPMessage.updateUI();
JBcn.setEnabled(false);
JBen.setEnabled(true);
JPButton.updateUI();
}else{
if (e.getSource() == JBen){
//显示中文按钮
//显示英文信息
message.setText("Hello, Java World!");
JPMessage.updateUI();
JBcn.setEnabled(true);
JBen.setEnabled(false);
JPButton.updateUI();
}
}
}
}
*****************************************************************************************
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import java.awt.*;
/**
* JButton事件响应组件
* 框架JFrame包含面板JPanel,面板JPanel包含组件JButton的层次关系
*/
public class JButtonEvent extends JFrame implements ActionListener{
//声明显示信息的标签
private JLabel message = new JLabel("Hello, Java World!");
//声明两个按钮
private JButton JBcn, JBen;
private JPanel JPButton, JPMessage;
//构造方法
public JButtonEvent(){
this.setTitle("测试按钮事件");
//建立按钮
JPButton = new JPanel();
JPMessage = new JPanel();
JPButton.setLayout(new FlowLayout());
JPMessage.setLayout(new FlowLayout());
JPMessage.add(message);
JPButton.add(JBcn = new JButton("中文"));
JPButton.add(JBen = new JButton("English"));
//把面板放置到框架中
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(JPMessage, BorderLayout.CENTER);
this.getContentPane().add(JPButton, BorderLayout.SOUTH);
//设置按钮的监听器
JBcn.addActionListener(this);
JBen.addActionListener(this);
//设置按钮的活动状态
JBen.setEnabled(false);
}
//处理按钮事件方法
public void actionPerformed(ActionEvent e){
if (e.getSource() == JBcn){
//显示英文按钮
//显示中文信息
message.setText("Java世界,您好!");
JPMessage.updateUI();
JBcn.setEnabled(false);
JBen.setEnabled(true);
JPButton.updateUI();
}else{
if (e.getSource() == JBen){
//显示中文按钮
//显示英文信息
message.setText("Hello, Java World!");
JPMessage.updateUI();
JBcn.setEnabled(true);
JBen.setEnabled(false);
JPButton.updateUI();
}
}
}
}
*****************************************************************************************
package java;
import javax.swing.*;
import component.JButtonEvent;;
public class JButtonEventDemo {
public static void main(String[]args){
JButtonEvent frame=new JButtonEvent();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,200);
frame.setLocation(100, 100);
frame.setVisible(true);
}
}
import javax.swing.*;
import component.JButtonEvent;;
public class JButtonEventDemo {
public static void main(String[]args){
JButtonEvent frame=new JButtonEvent();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,200);
frame.setLocation(100, 100);
frame.setVisible(true);
}
}
这是 Eclipse 本身的问题,处理办法参考 这里 。