sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 2010
-
25 févr. 2004 à 16:33
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 2010
-
3 mars 2004 à 12:37
j'ai un petit probleme :
j'ai finnis un livre sur le java et je voudrais mettre en application ce que je sais faire donc j'ai voulu creer une sorte d'editeur de texte mais j'ai un petit proble a la derniere classe :
class ouvrirAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
throws FileNotFoundException
{
try
{
ObjectInputStream in = new ObjectInputStream(
new FileInputStream(
new File("save.daedricmemo")));
String resultat = (String)in.readObject();
System.out.println(resultat);
in.close();
}
catch(IOException e)
{
System.out.println("Une IOException a été détectée !");
}
public class memo
{
public static void main(String[] args)
{
TextTestFrame frame = new TextTestFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class TextTestFrame extends JFrame // <- classe interne
{ public void setEntrerArea(JTextArea entrerArea) {
this.entrerArea = entrerArea;
}
public JTextArea getEntrerArea() {
return entrerArea;
}
public TextTestFrame()
{
setTitle("memo java programmer par daedric");
setSize(WIDTH, HEIGHT);
cracktextPanel panel2 = new cracktextPanel();
Container contentPane = getContentPane();
contentPane.add(panel2);
JPanel panel = new JPanel();
entrerArea = new JTextArea(8,40);
scrollPane =new JScrollPane(entrerArea);
contentPane.add(scrollPane,BorderLayout.SOUTH);
panel.add(entrerArea);
entrerArea.setLineWrap(true);
contentPane.add(panel, BorderLayout.SOUTH);
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
setSize(screenWidth / 2, screenHeight / 2);
setLocation(screenWidth / 4, screenHeight / 4);Image img = kit.getImage("mon icone.gif");
setIconImage(img);
JMenuBar menubar= new JMenuBar();
setJMenuBar(menubar);
JMenu files = new JMenu("fichier");
menubar.add(files);
JMenuItem enregistrer = files.add("enregistrer");
enregistrer.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
try
{
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("save.daedricmemo"));
out.writeObject(entrerArea);
out.close();
}
catch(IOException e)
{
System.out.println("Une IOException a été détectée !");
}
JMenu edit = new JMenu("edition");
menubar.add(edit);
JMenu optionMenu = new JMenu("Options");
menubar.add(optionMenu);
edit.addSeparator();
edit.add(optionMenu);
ButtonGroup group = new ButtonGroup();
JRadioButtonMenuItem windows = new JRadioButtonMenuItem("style windows");
windows.setSelected(true);
JRadioButtonMenuItem metal= new JRadioButtonMenuItem("metal");
JRadioButtonMenuItem motif= new JRadioButtonMenuItem("motif");
group.add(windows);
group.add(metal);
group.add(motif);
optionMenu.add(windows);
optionMenu.add(metal);
optionMenu.add(motif);
JMenu help = new JMenu("aide");
menubar.add(help);
help.addSeparator();
JMenuItem aide = help.add("aide");
aide.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if (p == null) // first time
p = new helpDialog(TextTestFrame.this);
p.show(); // pop up dialog
}
});
JMenuItem about = help.add("about");
about.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if (dialog == null) // first time
dialog = new AboutDialog(TextTestFrame.this);
dialog.show(); // pop up dialog
}
});
}
public static final int WIDTH = 300;
public static final int HEIGHT = 300;
public JTextArea entrerArea;
private AboutDialog dialog;
private JScrollPane scrollPane;
private helpDialog p;
public TextTestFrame text;
}
class helpDialog extends JDialog
{
public helpDialog(JFrame owner)
{
super(owner, "aide", true);
Container contentPane = getContentPane();
contentPane.add(new JLabel("<HTML>je pense que je n'ai
"+
"pas besoin d'expliquer comment ca fonctionne</HTML>"
),
BorderLayout.CENTER);
JButton ok = new JButton("Ok");
ok.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
setVisible(false);
}
});
JPanel panel = new JPanel();
panel.add(ok);
contentPane.add(panel, BorderLayout.SOUTH);
setSize(250, 150);
}
}
class AboutDialog extends JDialog
{
public AboutDialog(JFrame owner)
{
super(owner, "", true);
Container contentPane = getContentPane();
contentPane.add(new JLabel(
"<HTML> memo Java
<HR>"
+ "By DAEDRIC</HTML>"),
BorderLayout.CENTER);
JButton ok = new JButton("Ok");
ok.addActionListener(new
ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
setVisible(false);
}
});
JPanel panel = new JPanel();
panel.add(ok);
contentPane.add(panel, BorderLayout.SOUTH);
setSize(250, 150);
}
}
class cracktextPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawString("voici un memo programmer en java",MESSAGE_K,MESSAGE_L);
}
public static final int MESSAGE_K = 0;
public static final int MESSAGE_L = 10;
}
class ouvrirAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
throws FileNotFoundException
{
try
{
ObjectInputStream in =new ObjectInputStream(
new FileInputStream(
new File("save.daedricmemo")));
String resultat = (String)in.readObject();
System.out.println(resultat);
in.close();
}
catch(IOException e)
{
System.out.println("Une IOException a été détectée !");
}
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 25 févr. 2004 à 18:39
le compilateur me dit ca :
C:\Documents and Settings\MS\Bureau\memo.java:234: actionPerformed(java.awt.event.ActionEvent) in ouvrirAction cannot implement actionPerformed(java.awt.event.ActionEvent) in java.awt.event.ActionListener; overridden method does not throw java.lang.ClassNotFoundException
public synchronized void actionPerformed(ActionEvent event)
^
1 error
dmaillet
Messages postés500Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention11 juillet 2007 26 févr. 2004 à 08:35
Salut,
en fait ton pb c'est que tu reecris la methode actionPerformed car tu implements ActionListener. Tu n'as pas le droit de modifier l'entete de la methode : actionPerformed ne peut pas etre throwns FileNotFoundException, tout comme tu ne peux pas changer et/ou rajouter de parametres en entree de la methode....
Par contre, tu peux lever l'exception FileNotFoundException par ta classe meme en faisant un extends de cette exception (ce n'est pas plus simple),
En regardant ton code, tu duppliqes la levee d'exception (tu fais un try catch dans actionPerformed), donc tu n'as pas besoin de lever l'exception FileNotFoundException si tu le fais a l'interieur de la methode...
sauf si tu veux recuperer en dehors, mais alors supprime le try catch interne !
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 26 févr. 2004 à 11:59
:big) Neodante :big)
J'aurais écrit un roman comme j'ai l'habitude d'en écrire de temps en temps ... et puis ton explication est claire rien à dire de plus ... si tu veux je peux le faire mais en plus de mots (j'ai un don pour allonger les phrases !!! lol) :-p
@+
dmaillet
Messages postés500Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention11 juillet 2007 1 mars 2004 à 08:53
Bah de rien pour la reponse, j'essaie de faire de mon mieux...
Un forum comme celui la sert a ca...
Qd on debute en java, tout ne s'apprend pas dans les livres, meme si c'est une excellente base...
Le probleme souvent c'est qu'il n'aborde pas assez les notions de classes objets parente, derivation...etc...
Or c'est souvent ce que les gens ne pige pas au depart... qd on n'a jamais fait d'objet avant.... et ici c'etait le cas... revois un peu les notions de derivation et d'interface (implements et extends) et tu y verras plus clair....
Alors pour ta nouvelle question, si je comprend bien tu veux faire
try{
try{
commandes
}
catch(IOException e)
}
catch(FileNotFoundException f)
c'est ca?
en fait, je pense que ton compilo va accepte, mais c'est une erreur...
FileNotFoundException est une IOException, donc ca ne sert a rien..., tu catcheras une exception d'entree sortie avant le prenmier try catch, tu me suis?
Pourquoi veux tu mettre 2 try catch? La ou un seul suffirait!
cs_neodante
Messages postés2835Date d'inscriptionlundi 11 août 2003StatutModérateurDernière intervention16 décembre 200611 1 mars 2004 à 09:32
:big) Neodante :big)
Normalement ton compilo te dira qu'il n'est pas reachable ... avec ce try catch ! Je me trompe ??? Tu aurait fait l'inverse (inversé les deux exception) cela n'aurait normalement pas lieu ...
@+
dmaillet
Messages postés500Date d'inscriptionmercredi 20 août 2003StatutMembreDernière intervention11 juillet 2007 1 mars 2004 à 09:47
Vi, c vrai qu'il devrait te dire que le deuxieme n'est pas reacheable...
vi, normalement il doit te levr un secteur not reachable...
mais en plus, je viens de voir quetu as mis
(String)in.readObject();
cette commande doit etre mise dans un try catch ClassNotFoundException ...
L'ideal pour toi serait si ce que te renvoie les exception t'imoporte peux sauf a l'affichage, de faire
try{
commandes();
} catch( Exception e){
System.out.println(e);}
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 2 mars 2004 à 20:25
mais merci encore pour vos reponse mais je recapitule :
1) mettre (String)in.readObject(); dans un bloc try catch avec ClassNotFoundException
2)enlever le filenotfoundexeption
merci encore :big)
et c vrai que dans les livre il n'y a pas tout mais sur les tuto sur internet il y a encore moins (j'ai attaque le c++ sur internet)