,
Voila j'ai un problème avec la récupération de données d'une fenetre. Au départ j'ai une fenêtre principale qui contient un modèle de Jtable et des boutons(ajouter,sup, mod, etc..). Lorsque je cliquais sur le bouton ajouter, je crée bien une nouvel fenetre2(qui est affecté à une variable objet) et le programe principale continuait. Du coup la variable objet n'est pas affecté avec les données de la fenetre et ça m'affiche null.
Ma question est : "Est qu'il y a un moyen d'arranger ça ou y a t il une autre façon de programmer ?"
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; class Fram extends JFrame implements ActionListener { public modelTable model; public Fram(DataFournisseur facture1) { this.setSize(900,650); this.setTitle(facture1.getnomF() ); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); p1.setPreferredSize(new Dimension(810,130)); p1.setLayout(null); ////////////////////constriuction des JLabel et JtextF////////////// JLabel chps_nom = new JLabel("NOM :"); chps_nom.setBounds(100,30,80,20); p1.add(chps_nom); JLabel fieldname = new JLabel(facture1.getnomF()); fieldname.setBounds(140,30,200,20); p1.add(fieldname); p1.setBackground(Color.yellow); this.getContentPane().setLayout(new BorderLayout()); this.getContentPane().add("North",p1); /////////////////////////////////fin//////////////////////////// Object[] t = facture1.getstockdonnee(); //construction d'un modele modelTable model = new modelTable(t); JTable table = new JTable(); table.setModel(model); table.setPreferredScrollableViewportSize(new Dimension(870,350)); JScrollPane JScroll = new JScrollPane(table); p2.setPreferredSize(new Dimension(785,500)); p2.add(JScroll); this.getContentPane().add("Center",p2); //////////////////////construction des JButton/////////////////////// JButton b_ajouter = new JButton("Ajouter"); b_ajouter.addActionListener(this); p3.add(b_ajouter); this.getContentPane().add("South",p3); /////////////////fin/////////////////////////////// this.setLocationRelativeTo(getParent()); this.setVisible(true); this.dispose(); } public void actionPerformed(ActionEvent e) { String command = e.getActionCommand(); if(command.equals("Ajouter")) { FactureFournisseur d = new FactureFournisseur(); AjoutData a = new AjoutData(); d = a.setdonne(); fact1.stockdonnee(fact1); // stocke dans l'arrayList de DataFournisseur } } } public class test { public static void main(String args[]) { DataFournisseur f1 = new DataFournisseur(); f1.setnomFournisseur("xxrrx"); new Fram(f1); }}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 import javax.swing.JFrame; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class AjoutData extends JFrame { private FactureFournisseur fact1; private JFrame frame; public AjoutData() { afficheFrame2(); } //partie qui va afficher la fenêtre private void afficheFrame2() { frame = new JFrame(); frame.setSize(600,280); frame.setTitle("Entrez les données du fournisseur"); frame.setLayout(null); //champs date JLabel chpsdate = new JLabel("Date"); chpsdate.setBounds(30,50,30,20); frame.getContentPane().add(chpsdate); JTextField fieldDate = new JTextField(); fieldDate.setBounds(100,50,150,20); frame.getContentPane().add(fieldDate); //champs numero chèque JLabel chps_Ncheque = new JLabel("N°cheque"); chps_Ncheque.setBounds(30,155,70,20); frame.getContentPane().add(chps_Ncheque); JTextField fieldNcheque = new JTextField (); fieldNcheque.setBounds(100,155,150,20); frame.getContentPane().add(fieldNcheque); JButton ok = new JButton("OK"); ok.setBounds(180,200,60,25); ok.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ okActionPerformed(e); } }); frame.getContentPane().add(ok); frame.setAlwaysOnTop(false); //la fenetre sera toujours au 1er plan frame.setLocationRelativeTo(getParent());//affichage centrer en fonction de l'arrière plan frame.setVisible(true); } //ActionPerformed récupèrer les données provenant de la fenetre public void okActionPerformed(ActionEvent e) { fact1 = new FactureFournisseur(); fact1.setdate(fieldDate.getText()); fact1.setNCheque(Integer.parseInt(fieldNcheque.getText())); frame.setVisible(false); } public FactureFournisseur setdonne() { return fact1; }
Partager