Récupérer les valeurs d'une classe dans une autre classe

Signaler
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
-
ulysse00
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
-
bonsoir

je cherche à récupérer les valeurs des cellules d'une ligne de table d'une classe dans une autre classe si je click sur la souri
voila mon code
classe1
jTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {

Point p=e.getPoint(); //recup la position de la souris
int row=jTable.rowAtPoint(p); //indice de la ligne a cette position
int col = jTable.columnAtPoint(p); //indice colonne
aa1=jTable.getValueAt(row, 0).toString();
aa2=jTable.getValueAt(row, 1).toString();
aa3=jTable.getValueAt(row, 2).toString();
aa4=jTable.getValueAt(row,3).toString();
}
});

comment récupérer les valeurs dans la classe2
merci d'avance

8 réponses

Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

Fais une recherche sur le forum : j'ai déjà répondu à cette question plusieurs fois il y a 2 semaines.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
voila ma deuxième classe
je veux afficher la valeur aa1 sur jTextField

import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Rectangle;
import java.awt.GridBagLayout;

public class tester extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JPanel jPanel = null;

private JTextField jTextField = null;


private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.setBounds(new Rectangle(30, 15, 222, 111));
jPanel.add(getJTextField(), null);
}
return jPanel;
}


private JTextField getJTextField() {
if (jTextField == null) {
jTextField = new JTextField();
jTextField.setBounds(new Rectangle(84, 36, 93, 36));
}
return jTextField;
}


public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
tester thisClass = new tester();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}


public tester() {
super();
initialize();
}

private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}


private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJPanel(), null);
}
return jContentPane;
}

}
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
quelq'un peux m'aider à résoudre le problème
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

Fais une recherche sur le forum et tu auras ta réponse : faire une getter dans ta classe tester, et l'appeler dans la classe où tu veux récupérer la valeur. C'est pas plus compliqué.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
salut

je cherche à faire si je sélectionne une ligne de la table de la classe minooo puis clic sur le bouton tester de la classe minooo la fenêtre tester s'ouvre et affiche les valeurs de la ligne sélectionnée sur jtextfield 1 et jtextfield2 de la classe tester

je vous montre les deux classes
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;

import java.awt.Color;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.GridBagLayout;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JTextField;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.Dimension;
import javax.swing.JButton;

public class minooo extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JPanel jPanel = null;

private JScrollPane jScrollPane = null;

private JTable jTable = null;
public String nom;
public String prénom;

private JButton jButton = null;

/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.setBounds(new Rectangle(13, 20, 552, 181));
jPanel.add(getJScrollPane(), null);
jPanel.add(getJButton(), null);
}
return jPanel;
}

/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(55, 20, 190, 99));
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
}

/**
* This method initializes jTable
*
* @return javax.swing.JTable
*/
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable();
Vector columnNames = new Vector();

Vector data = new Vector();
Object[][] data1 = {
{"", "", "","" }, {"", "" }
};

String[] columns1 = { "nom", "prénom" };


try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();


String url= "jdbc:odbc:test";
String user = "user";
String pass = "pass";
Connection connection = DriverManager.getConnection (url, user, pass);

String sql1 = "select * client";


Statement instruction = connection.createStatement();


String sql = "select * from client " ;
ResultSet resultatt = instruction.executeQuery(sql);
ResultSetMetaData md = resultatt.getMetaData();
int columns = md.getColumnCount();

// Get column names

for (int id = 1; id < columns; id++) {
columnNames.addElement(md.getColumnName(id));
}

// Get row data

while (resultatt.next()) {
Vector row = new Vector(columns);

for (int j = 1; j <= columns; j++) {
row.addElement(resultatt.getObject(j));
}

data.addElement(row);

}



jTable = new JTable(data, columnNames);
System.out.println(jTable.getValueAt(0, 2));
jTable.setBackground(Color.green);
jTable.setVisible(true);
jTable .setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


jTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {

Point p=e.getPoint(); //recup la position de la souris
int row=jTable.rowAtPoint(p); //indice de la ligne a cette position
int col = jTable.columnAtPoint(p); //indice colonne
nom=jTable.getValueAt(row, 0).toString();
prénom=jTable.getValueAt(row, 1).toString();
tester a = new tester ();
a.setVisible(true);



}
});

}catch (Exception ex) {
System.out.println("jjjjjjjjjjj "+ex.getMessage());

ex.printStackTrace() ;
}
}
return jTable;
}

/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(323, 118, 118, 45));
jButton.setText("tester");
jButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
tester test= new tester();
test.setVisible(true);
}
});
}
return jButton;
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
minooo thisClass = new minooo();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}

/**
* This is the default constructor
*/
public minooo() {
super();
initialize();
}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(589, 247);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJPanel(), null);
}
return jContentPane;
}

}
deuxième classe ou je veux afficher le nom sur jtextfield voila le code
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.Rectangle;
import java.awt.GridBagLayout;
import javax.swing.JLabel;

public class tester extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JPanel jPanel = null;

private JTextField jTextField = null;

private JLabel jLabel = null;

private JLabel jLabel1 = null;

private JTextField jTextField1 = null;

/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jLabel1 = new JLabel();
jLabel1.setBounds(new Rectangle(28, 64, 72, 30));
jLabel1.setText("prénom");
jLabel = new JLabel();
jLabel.setBounds(new Rectangle(18, 15, 75, 42));
jLabel.setText("nom");
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.setBounds(new Rectangle(30, 15, 222, 111));
jPanel.add(getJTextField(), null);
jPanel.add(jLabel, null);
jPanel.add(jLabel1, null);
jPanel.add(getJTextField1(), null);
}
return jPanel;
}

/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField() {
if (jTextField == null) {
jTextField = new JTextField();
jTextField.setBounds(new Rectangle(111, 15, 93, 36));
minooo a = new minooo();
String t=a.nom;
String h= t;
System.out.println("test "+h);
jTextField.setText(h);
}
return jTextField;
}

/**
* This method initializes jTextField1
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField1() {
if (jTextField1 == null) {
jTextField1 = new JTextField();
jTextField1.setBounds(new Rectangle(110, 62, 84, 32));
}
return jTextField1;
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
tester thisClass = new tester();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}

/**
* This is the default constructor
*/
public tester() {
super();
initialize();
}

/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(300, 200);
this.setContentPane(getJContentPane());
this.setTitle("JFrame");
}

/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJPanel(), null);
}
return jContentPane;
}

}

h égale toujours null

je n'ai pas trouvé la solution je coince
Messages postés
15815
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
94
Salut,

Il faut vraiment que je fasse la recherche à ta place alors, c'est pourtant pas bien compliqué de faire une recherche sur le forum, si ?

Voici le lien où j'avais déjà répondu il y a peu de temps. Prends la peine de lire les messages échangés, et tu devrais être capable de faire ce que tu cherches à faire :
http://www.javafr.com/forum/sujet-SELECTIONNE-LIGNE-DEPUI-TABLE-JAVA_1419711.aspx
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
bonsoir dans la classe minooo
voila la modification

jTable.getSelectionModel().addListSelectionListener( new ListenerJTableDossierUnique( jTable ) );

public class ListenerJTableDossierUnique implements ListSelectionListener
{
private JTable table;
public ListenerJTableDossierUnique( JTable table )
{
this.table = table;
}
public void valueChanged( ListSelectionEvent e )
{
if( !e.getValueIsAdjusting() )
{
int num=table.getSelectedRow() ;
nom1=jTable.getValueAt(num, 0).toString();
System.out.println( "la va leurrrrrrrrrrrrrrr "+nom1 );
tester a = new tester ();
a.setVisible(true);


}
}

}


comment faire afficher la valeur nom1 sur jtextfield de la classe tester
Messages postés
292
Date d'inscription
lundi 6 novembre 2006
Statut
Membre
Dernière intervention
12 mai 2013
1
bonsoir
est ce que quelqu'un peut m'aider
merci