Ascensseur horizontal

Résolu
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 5 janv. 2006 à 11:33
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 - 5 janv. 2006 à 18:18
bonjour,

JTable tableDonnees = new JTable(donnees, nomColonnes);
JScrollPane ascenseur = new JScrollPane();
ascenseur.getViewport().add(tableDonnees);
ascenseur.setBounds(10, 45, 500, 605);
add(ascenseur);


avec le code suivant, ma JTable s'affiche comme il faut mais je n'ai qu'un ascensseur vertical.
quelle propriete de mon JScrollPane modifier pour ajouter 1 second ascensseur horizontal ?

merci a vous,

alonsyl

8 réponses

sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
5 janv. 2006 à 18:14
voila mais g pris des liberter pour mettre un code a mes yeux agreable (ce qui ne veut pas dire que ce que tu fait n'est pas bon)
il fallait en fait faire en sorte que le JTable ne se redimensionne pas et apres ajouter les JScrollPane ^^

package src;


import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;


public class ImportDonnees extends JInternalFrame {


private JButton boutImport = new JButton(
"Importation de données "*.txt" (séparateur tabulation)");


private JButton boutCharger = new JButton(
"Charger un fichier "*.sfc" existant");


private JButton boutEnregis = new JButton(
"Enregistrer ces données en base StatForCost (*.sfc)");


private JScrollPane ascenseur = new JScrollPane();


private JTable tableDonnees;


private int nbLignes = 0;


private int nbColonnes = 0;


private String[] nomColonnes;


private String[][] donnees;


private Connection cnx;


private JPanel Center;


Statement rst;


public ImportDonnees() {


setSize(600, 600);


setClosable(true);
JPanel West = new JPanel();
West.setLayout(new GridLayout(3, 1));
Center = new JPanel();
Center.setLayout(new GridLayout(1, 1));
JPanel East = new JPanel();
//West.setLayout(new GridLayout(1,1));
//boutImport.setBounds(10, 10, 340, 25);
boutImport.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
importfile();
}
});


boutCharger.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
charge();
}
});


boutEnregis.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
save();
}
});
boutEnregis.setVisible(false);


West.add(boutCharger);
West.add(boutImport);
West.add(boutEnregis);
add(Center, BorderLayout.CENTER);


add(West, BorderLayout.NORTH);
setVisible(true);
repaint();
}


protected void save() {
try {


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


cnx = DriverManager
.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/MaBase.mdb)");


rst = cnx.createStatement();


rst.execute("CREATE DATABASE MaBase;");


cnx.close();


} catch (Exception e) {


System.out.println("" + e);


}


}


protected void charge() {
// TODO Auto-generated method stub


}


protected void importfile() {
try {


JFileChooser boiteOuvrir = new JFileChooser(".\");


boiteOuvrir.showOpenDialog(this);


BufferedReader fichierTexte = new BufferedReader(new FileReader(
boiteOuvrir.getSelectedFile().getPath()));


StringTokenizer elements;
String chaineTemp;


while ((chaineTemp = fichierTexte.readLine()) != null) {
if (nbLignes == 0) {
elements = new StringTokenizer(chaineTemp, "\t");
nbColonnes = elements.countTokens();
nomColonnes = new String[nbColonnes];
for (int i = 0; i < nbColonnes; i++)
nomColonnes[i] = new String(elements.nextToken());
}
nbLignes++;
}


nbLignes--;


fichierTexte.close();


fichierTexte = new BufferedReader(new FileReader(boiteOuvrir
.getSelectedFile().getPath()));


donnees = new String[nbLignes][nbColonnes];


nbLignes = 0;


chaineTemp = fichierTexte.readLine();


while ((chaineTemp = fichierTexte.readLine()) != null) {


elements = new StringTokenizer(chaineTemp, "\t");


for (int i = 0; i < nbColonnes; i++)
donnees[nbLignes][i] = new String(elements.nextToken());


nbLignes++;


}


fichierTexte.close();


tableDonnees = new JTable(donnees, nomColonnes);
tableDonnees.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


Center.add(new JScrollPane(tableDonnees));
boutEnregis.setVisible(true);
Center.repaint();
Center.updateUI();
updateUI();
} catch (Exception e) {


}


}


}
3
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
5 janv. 2006 à 18:18
heuu petite retoucher de nom de variable qui etait illogique (du moins en version finale ^^)
remarque : faudrais enlever un peu de hauteur , la barre du menu demarrer cache la barred e defilement ^^

package src;


import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;


public class ImportDonnees extends JInternalFrame {


private JButton boutImport = new JButton(
"Importation de données "*.txt" (séparateur tabulation)");


private JButton boutCharger = new JButton(
"Charger un fichier "*.sfc" existant");


private JButton boutEnregis = new JButton(
"Enregistrer ces données en base StatForCost (*.sfc)");


private JScrollPane ascenseur = new JScrollPane();


private JTable tableDonnees;


private int nbLignes = 0;


private int nbColonnes = 0;


private String[] nomColonnes;


private String[][] donnees;


private Connection cnx;


private JPanel Center;


Statement rst;


public ImportDonnees() {


setSize(600, 600);


setClosable(true);
JPanel North = new JPanel();
North.setLayout(new GridLayout(3, 1));
Center = new JPanel();
Center.setLayout(new GridLayout(1, 1));

boutImport.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
importfile();
}
});


boutCharger.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
charge();
}
});


boutEnregis.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
save();
}
});
boutEnregis.setVisible(false);


North.add(boutCharger);
North.add(boutImport);
North.add(boutEnregis);
add(Center, BorderLayout.CENTER);


add(North, BorderLayout.NORTH);
setVisible(true);
repaint();
}


protected void save() {
try {


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


cnx = DriverManager
.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/MaBase.mdb)");


rst = cnx.createStatement();


rst.execute("CREATE DATABASE MaBase;");


cnx.close();


} catch (Exception e) {


System.out.println("" + e);


}


}


protected void charge() {
// TODO Auto-generated method stub


}


protected void importfile() {
try {


JFileChooser boiteOuvrir = new JFileChooser(".\");


boiteOuvrir.showOpenDialog(this);


BufferedReader fichierTexte = new BufferedReader(new FileReader(
boiteOuvrir.getSelectedFile().getPath()));


StringTokenizer elements;
String chaineTemp;


while ((chaineTemp = fichierTexte.readLine()) != null) {
if (nbLignes == 0) {
elements = new StringTokenizer(chaineTemp, "\t");
nbColonnes = elements.countTokens();
nomColonnes = new String[nbColonnes];
for (int i = 0; i < nbColonnes; i++)
nomColonnes[i] = new String(elements.nextToken());
}
nbLignes++;
}


nbLignes--;


fichierTexte.close();


fichierTexte = new BufferedReader(new FileReader(boiteOuvrir
.getSelectedFile().getPath()));


donnees = new String[nbLignes][nbColonnes];


nbLignes = 0;


chaineTemp = fichierTexte.readLine();


while ((chaineTemp = fichierTexte.readLine()) != null) {


elements = new StringTokenizer(chaineTemp, "\t");


for (int i = 0; i < nbColonnes; i++)
donnees[nbLignes][i] = new String(elements.nextToken());


nbLignes++;


}


fichierTexte.close();


tableDonnees = new JTable(donnees, nomColonnes);
tableDonnees.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);


Center.add(new JScrollPane(tableDonnees));
boutEnregis.setVisible(true);
Center.repaint();
Center.updateUI();
updateUI();
} catch (Exception e) {


}


}


}

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
3
kaloway Messages postés 358 Date d'inscription jeudi 24 octobre 2002 Statut Membre Dernière intervention 13 avril 2020
5 janv. 2006 à 12:53
je ne sais pas si un JScrollpane fonctionne exactement de la même maniere pour un JTable que pour un JList. ce que je sais; c'est que les ascenseurs apparaisent automatiquement lorsque la dimension en largeur ou hauteur les justifient.
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
5 janv. 2006 à 14:26
pour ce qui est de ma JTable, java joue sur la largeur de mes colonnes tant et si bien que j'ai un grand nombre de toutes petites colonnes (pour les lignes, tout est calibrer comme il faut).

merci a toi,

alonsyl
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
5 janv. 2006 à 15:29
JTable tableDonnees = new JTable(donnees, nomColonnes);
add(new JScrollPane(tableDonnees));

en plus il n'apparaitra que si ya besoin ^^

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
5 janv. 2006 à 16:27
si je ne mets pas : ascenseur.getViewport().add(tableDonnees);, ça ne fonctionne plus !

merci a toi,

alonsyl
0
sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
5 janv. 2006 à 16:29
heuuu si tu mettez le code de ta source ^^

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
5 janv. 2006 à 16:46
je n'avais pas donne le code complet car il est un peu long, mais puisqu'il le faut ...

c'est une JInternalFrame. cette interface est sencee importer les donnes d'un fichier *.txt (separateur tabulation) afin de remplir une JTable.
pour l'instant j'en suis la ; plus tard j'essairais de creer une procedure d'export des donnees de la JTable dans 1 BDD du type ACCESS ou MYSQL.

voici le monstre (en rouge les morceaux qui nous concernent) :

package src;


import java.awt.event.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;


public class ImportDonnees extends JInternalFrame implements ActionListener {

private JButton boutImport = new JButton("Importation de données "*.txt" (séparateur tabulation)");
private JButton boutCharger = new JButton("Charger un fichier "*.sfc" existant");
private JButton boutEnregis = new JButton("Enregistrer ces données en base StatForCost (*.sfc)");
private JScrollPane ascenseur = new JScrollPane();
private JTable tableDonnees;
private int nbLignes = 0;
private int nbColonnes = 0;
private String[] nomColonnes;
private String[][] donnees;
private Connection cnx;
Statement rst;


public ImportDonnees() {


setSize(600, 600);
setLayout(null);
setClosable(true);


boutImport.setBounds(10, 10, 340, 25);
boutImport.addActionListener(this);
add(boutImport);

boutCharger.setBounds(10, 45, 340, 25);
boutCharger.addActionListener(this);
add(boutCharger);

boutEnregis.setBounds(590, 10, 340, 25);
boutEnregis.addActionListener(this);
boutEnregis.setVisible(false);
add(boutEnregis);

setVisible(true);


}


public void actionPerformed(ActionEvent ev) {

Object source = ev.getSource();

if (source == boutImport) {


try {


JFileChooser boiteOuvrir = new JFileChooser();


boiteOuvrir.showOpenDialog(this);

BufferedReader fichierTexte = new BufferedReader(new FileReader(boiteOuvrir.getSelectedFile().getPath()));


StringTokenizer elements;
String chaineTemp;


while ((chaineTemp = fichierTexte.readLine()) != null) {
if (nbLignes == 0) {
elements = new StringTokenizer(chaineTemp, "\t");
nbColonnes = elements.countTokens();
nomColonnes = new String[nbColonnes];
for (int i = 0; i < nbColonnes; i++)
nomColonnes[i] = new String(elements.nextToken());
}
nbLignes++;
}

nbLignes--;

fichierTexte.close();

fichierTexte = new BufferedReader(new FileReader(boiteOuvrir.getSelectedFile().getPath()));

donnees = new String[nbLignes][nbColonnes];

nbLignes = 0;

chaineTemp = fichierTexte.readLine();

while ((chaineTemp = fichierTexte.readLine()) != null) {

elements = new StringTokenizer(chaineTemp, "\t");

for (int i = 0; i < nbColonnes; i++)
donnees[nbLignes][i] = new String(elements.nextToken());

nbLignes++;

}


fichierTexte.close();


tableDonnees = new JTable(donnees, nomColonnes);
ascenseur.getViewport().add(tableDonnees);
ascenseur.setBounds(10, 80, 500, 575);
add(ascenseur);


boutEnregis.setVisible(true);


} catch(Exception e) {



}


}

if (source == boutEnregis) {

try {
/* en cours de realisation
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");


cnx = DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/MaBase.mdb)");


rst = cnx.createStatement();


rst.execute("CREATE DATABASE MaBase;");


cnx.close();
*/


} catch (Exception e) {


System.out.println("" + e);


}

}

repaint();

}


}

merci a toi,

alonsyl
0
Rejoignez-nous