récupérer les données d'une fenetre
:salut:,
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 :mrgreen:
Code:
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:
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;
} |