albatrossa
Messages postés7Date d'inscriptionsamedi 13 octobre 2007StatutMembreDernière intervention 7 avril 2008
-
6 déc. 2007 à 19:55
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
6 déc. 2007 à 20:50
bonjour a tous,
voila je suis debutante en java, enfin pas debutante je n'y connait rien.
mon prof a exigé JAVA pour faire un petit systeme expert avec un moteur d'inference. et donc j'ai pensé a faire dans mon JFrame, des JTextField pour saisir les faits et regles, des JButton et des JList pour qu'a chaque fois que je clique sur le bouton correspondant la regle ou le fait que j'introduit s'affiche dans la liste,
puis a partir de ces listes que les algo des chainages avant et arriere conclueront le resultat.
l'idée je l'ai, mais la façon de le faire!!! aucune idée. je suis bloquée tout au debut.
j'arrive meme pas a remplir ma liste.
j'ai declarer un DefaultListModel,
avec :
model.addElement(text1.getText());
list1.setModel(model);
mais sa ne marche pas!!!!
regarder ce qu'il m'affiche comme erreur :
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at form1$1.actionPerformed(form1.java:138)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:5501)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3135)
at java.awt.Component.processEvent(Component.java:5266)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3968)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1778)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
moi j'ai rien compris et vous???
que doit je faire s'il vous plait.
albatrossa
Messages postés7Date d'inscriptionsamedi 13 octobre 2007StatutMembreDernière intervention 7 avril 2008 6 déc. 2007 à 20:27
enfait je travaille sur une classe visuelle donc je crée mes conroles a partir d'une palette et ils sont instancier automatiquement.
les lists et texts sont normalement generés automatiquement. donc je ne pense pas qu'il sont la cause de l'ereur!!
bon pour le model:
private DefaultListModel model;
voila la methode du boutton :
private JButton getBouton1() {
if (bouton1 == null) {
bouton1 = new JButton();
bouton1.setBounds(new Rectangle(225, 30, 134, 32));
bouton1.setText("Ajouer le fait");
bouton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//list1 = new JList(model);
if (text1.getText()!="")
{
model.addElement(text1.getText());
list1.setModel(model);
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 6 déc. 2007 à 20:50
Salut,
"je crée mes conroles a partir d'une palette et ils sont instancier automatiquement."
dans ce cas tu n'es pas censé utiliser directement ta variable... tu devrais plus utiliser le getter associé.
exemple :
private JButton getBouton1() {
if (bouton1 = = null) {
bouton1 = new JButton();
bouton1.setBounds(new Rectangle(225, 30, 134, 32));
bouton1.setText("Ajouer le fait");
bouton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if ( getText1() .getText()! ="") {
model.addElement(getText1().getText());
getList1().setModel(model);
}
}
});
}
return bouton1;
}
ainsi tu tassure que l'objet ne peut être null... maintenant si cela ne règle pas le problème (en tout cas il risque d'en éviter) il ne reste que le model...
le mieux serait de procéder ainsi :
[...]
private JList getList1() {
if(list1 = = null) {
list1 = new JList();
list1.setModel(new DefaultListModel());//tu t'assure que le model ne puisse pas etre null ou d'un autre type
[...]
}
return list1;
}
[...]
private JButton getBouton1() {