Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

warning: [serial] serializable class FenetreSimple has no definition of serialVersionUID

1 réponse
Avatar
noone
Bonjour,

je viens de tester l'exemple Java AWT Swing

http://developpeur.journaldunet.com/tutoriel/jav/040119java_debutant1.shtml


J'ai résolu (je pense) le premier problème ( fenetre.show() )

par contre en compilant avec l'option -Xlint

j'ai ceci

warning: [serial] serializable class FenetreSimple has no definition of
serialVersionUID


et je ne sais pas trop quoi en faire ;-)

===================


import java.awt.*;
import java.awt.event.*;
import javax.swing.*;



class FenetreSimpleExec // public
{
public static void main(String[] args)
{
FenetreSimple fenetre = new FenetreSimple();
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//fenetre.show(); // is deprecated
fenetre.setVisible(true);
}
}


class FenetreSimple extends JFrame
{
public FenetreSimple()
{
Toolkit k = Toolkit.getDefaultToolkit();
Dimension tailleEcran = k.getScreenSize();
int largeurEcran = tailleEcran.width;
int hauteurEcran = tailleEcran.height;

setTitle("Un programme Java");
setSize(largeurEcran/4, hauteurEcran/4);
setLocation(largeurEcran*3/8, hauteurEcran*3/8);

Contenu monContenu = new Contenu(this);
Container leContenant = getContentPane();
leContenant.add(monContenu);
}
}


class Contenu extends JPanel
{
private FenetreSimple maFenetre = null;
public Contenu(FenetreSimple maFenetre)
{
setLayout(new BorderLayout());

JButton boutonFermer = new JButton("Fermer");
add(boutonFermer, BorderLayout.SOUTH);

MyListener myListener = new MyListener();
this.maFenetre = maFenetre;
boutonFermer.addActionListener(myListener);
}

public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawString("Mon Texte", 25, 25);
}

class MyListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
maFenetre.dispose();
}
}
}


========


Merci d'avance

1 réponse

Avatar
Hervé AGNOUX
wrote:


par contre en compilant avec l'option -Xlint

j'ai ceci

warning: [serial] serializable class FenetreSimple has no definition of
serialVersionUID



Je pense que c'est parce que tu n'as pas mis de serialVersionUID dans ta
classe.

Pour le faire il te suffit de mettre dedans une définition qui ressemble à :

static final long serialVersionUID = -1234567890123456789L;

(par exemple).

Pour mettre quelque chose d'intelligent, il faut utiliser l'outil
"serialver" que tu trouveras dans le jdk. Et pour comprendre, il faut aller
lire ce qui concerne la serialization, et tout ce qui concerne les
évolutions des classes.

Cordialement.


--
Hervé AGNOUX
http://www.diaam-informatique.com