Afficher le résultat à l'écran
calmoust
Messages postés
11
Statut
Membre
-
Utilisateur anonyme -
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);
}
}
}
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:
- Afficher le résultat à l'écran
- Double ecran - Guide
- Resultat foot - Télécharger - Vie quotidienne
- Ecran a l'envers - Guide
- Capture d'écran whatsapp - Accueil - Messagerie instantanée
- Capture d'écran samsung - Guide
3 réponses
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.
Donc si tu veux afficher ailleurs, affiche ailleurs res.getObject(i) éventuellement suivi de .toString() si besoin.
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.
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.
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à).
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à).