Afficher le résultat à l'écran

calmoust Messages postés 11 Statut Membre -  
 Utilisateur anonyme -
Bonjour,
Je n'arrive pas à acchicher le résultat de ma consultation à l'écran. Le programme en java ci-join accède à la basse mysql mais il affiche le résultat en fond d'écran sous le dos .
NB : le programme a été manuellement compilé et lancé sous dos.

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JToolBar;

public class Consulter_user extends JFrame {

private JToolBar tool = new JToolBar();
private JButton load = new JButton(new ImageIcon("images/load.png"));
private JSplitPane split;
private JPanel result = new JPanel();
private String requete = "SELECT id_user,log,passe,nom FROM utilisateur ORDER BY id_user";

public Consulter_user(){
setSize(600, 300);
setTitle("Consultation des utilisateurs");
setLocationRelativeTo(null);

initContent();
initTable();
}

private void initToolbar(){
load.setPreferredSize(new Dimension(30, 35));
load.setBorder(null);
load.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
initTable();
}
});

tool.add(load);
getContentPane().add(tool, BorderLayout.NORTH);
}

public void initContent(){
//Vous connaissez ça...
result.setLayout(new BorderLayout());
JLabel jlb = new JLabel(new ImageIcon("images/600x120.jpg"));
jlb.setPreferredSize(new Dimension(600, 120));
JScrollPane dd = new JScrollPane(jlb);
split = new JSplitPane(JSplitPane.VERTICAL_SPLIT,jlb , result);
split.setDividerLocation(100);
getContentPane().add(split, BorderLayout.CENTER);
}

/**
*
* @param query
*/
public void initTable(){

try {

long start = System.currentTimeMillis();
Statement state = Connect.getInstance()
.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY
);

ResultSet res = state.executeQuery(requete);
ResultSetMetaData meta = res.getMetaData();
Object[] column = new Object[meta.getColumnCount()];

for(int i = 1 ; i <= meta.getColumnCount(); i++){
column[i-1] = meta.getColumnName(i);
}
res.last();
int rowCount = res.getRow();
Object[][] data = new Object[res.getRow()][meta.getColumnCount()];

res.beforeFirst();
int j = 1;

while(res.next()){
for(int i = 1 ; i <= meta.getColumnCount(); i++){
data[j-1][i-1] = res.getObject(i);
System.out.println(res.getObject(i));
}
j++;
}

res.close();
state.close();

long totalTime = System.currentTimeMillis() - start;

result.removeAll();
result.add(new JScrollPane(new JTable(data, column)), BorderLayout.CENTER);
result.add(new JLabel("La demande à été exécuter en " + totalTime + " ms et a retourné " + rowCount + " ligne(s)"), BorderLayout.SOUTH);
result.revalidate();

} catch (SQLException e) {
result.removeAll();
result.add(new JScrollPane(new JTable()), BorderLayout.CENTER);
result.revalidate();
JOptionPane.showMessageDialog(null, e.getMessage(), "ERREUR ! ", JOptionPane.ERROR_MESSAGE);
}

}

}
A voir également:

3 réponses

Utilisateur anonyme
 
Je ne sais pas où tu souhaites que cela soit affiché, mais en tout cas, le fait que ça l'affiche dans ta console ce sont les System.out.println(res.getObject(i));
Donc si tu veux afficher ailleurs, affiche ailleurs res.getObject(i) éventuellement suivi de .toString() si besoin.
0
calmoust Messages postés 11 Statut Membre
 
Je comprend maintenant le pourquoi.
Y a - t'il un moyen de présenter le résultat des éditions dans un format plus convivial que Dos ou la console?
l'envoyer dans word par exemple? ou dans un éditeur approprié à java? J'ai le même problème lorsque je fais des listes.
0
Utilisateur anonyme
 
En écrivant les données dans un fichier texte tu pourras l'ouvrir dans Word par exemple.
Dans un fichier csv, tu pourras l'ouvrir dans Excel par exemple.
Ou tu peux faire afficher ça dans ton interface Java avec des objets tels que JTextPane, JTextField, ou JTextArea par exemple (ou encore en texte de JButton ou JLabel si ça peut t'être utile de les placer là).
0