Affichage Jtable
Kilkenny95
Messages postés
151
Date d'inscription
Statut
Membre
Dernière intervention
-
tarek_dotzero Messages postés 817 Date d'inscription Statut Membre Dernière intervention -
tarek_dotzero Messages postés 817 Date d'inscription Statut Membre Dernière intervention -
Bonjour à toutes et à tous,
J'ai créer un Jtable "jtable" dans lequel se trouvent des données d'une bdd MySQL.
Cependant j'ai quelques problèmes :
Lorsque je surprime un élément de ma bdd (et donc de mon tableau), l'élement de se supprime pas dynamiquement (Alors que lorsque j'ajoute une données, là, aucun soucis.
Second problème, l'affiche de ma table est vraiment degeu lorsque ma Jframe devient trop petit pour afficher toutes les données :

Je n'arrive pas à afficher ce foutu Scrollbar.
Si quelqu'un peut m'aider merci
Code de mon interface :
et code ma JTable :
Merci
J'ai créer un Jtable "jtable" dans lequel se trouvent des données d'une bdd MySQL.
Cependant j'ai quelques problèmes :
Lorsque je surprime un élément de ma bdd (et donc de mon tableau), l'élement de se supprime pas dynamiquement (Alors que lorsque j'ajoute une données, là, aucun soucis.
Second problème, l'affiche de ma table est vraiment degeu lorsque ma Jframe devient trop petit pour afficher toutes les données :

Je n'arrive pas à afficher ce foutu Scrollbar.
Si quelqu'un peut m'aider merci
Code de mon interface :
public class Presentation2 { ProductList productList = new ProductList(); public Presentation2(){ JFrame presentation =new JFrame("Database MPSI FM"); JPanel main = new JPanel(); presentation.setSize(900,500); presentation.setResizable(true); presentation.setLocationRelativeTo(null); presentation.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); presentation.setContentPane(main); presentation.setVisible(true); main.setLayout(new BorderLayout()); main.setBackground(Color.lightGray); JPanel center = new JPanel(); center.setLayout(new BorderLayout()); JPanel centernorth = new JPanel(); centernorth.setLayout(new FlowLayout(FlowLayout.RIGHT)); JPanel middlecenter = new JPanel(); middlecenter.setLayout(new GridBagLayout()); GridBagConstraints gb = new GridBagConstraints(); JPanel southcenter = new JPanel(); southcenter.setLayout(new FlowLayout(FlowLayout.RIGHT)); JPanel southleft = new JPanel(); southleft.setLayout(new FlowLayout(FlowLayout.LEFT)); JScrollPane js = new JScrollPane(productList.jTable); gb.gridy = 0; gb.gridx = 0; middlecenter.add(productList.jTable.getTableHeader(), gb); gb.gridy = 1; gb.gridx = 0; middlecenter.add(productList.jTable, gb); centernorth.add(productList.ajouter); centernorth.add(productList.supprimer); centernorth.add(productList.modifier); southleft.add(productList.addNode); southleft.add(productList.removeNode); southleft.add(productList.nomAddedNode); centernorth.add(productList.recherche); productList.arbre.setPreferredSize(new Dimension(300, 600)); center.add(centernorth,BorderLayout.NORTH); center.add(southcenter,BorderLayout.SOUTH); center.add(middlecenter,BorderLayout.CENTER); main.add(productList.arbre,BorderLayout.WEST); main.add(center,BorderLayout.CENTER); main.add(southleft, BorderLayout.SOUTH); presentation.setVisible(true); } }
et code ma JTable :
public ProductList() { nom_texte.setPreferredSize(new Dimension(100,20)); recherche.setPreferredSize(new Dimension(100, 20)); model.addColumn("id"); model.addColumn("name"); model.addColumn("localisation"); model.addColumn("historique"); model.addColumn("etat"); model.addColumn("PDF"); recherche.setText("rechercher"); recherche.setForeground(Color.gray); recherche.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { recherche.setText(""); recherche.setForeground(Color.black); } }); nomAddedNode.setText("Ajouter niveau"); nomAddedNode.setForeground(Color.gray); nomAddedNode.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { nomAddedNode.setText(""); nomAddedNode.setForeground(Color.black); } }); DefaultTableModel model = (DefaultTableModel) jTable.getModel(); jTable.setPreferredSize(new Dimension(450,350)); jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); this.setVisible(true); Jtreebdd(); try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/bdd_mspifm_mysql?zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=UTC", "admin", "mspifm46"); PreparedStatement ps = con.prepareStatement("SELECT * FROM product"); ResultSet rs = ps.executeQuery(); while (rs.next()) { model.addRow(new Object[]{rs.getInt(1), rs.getString(2), rs.getString(3), rs.getString(4)}); } } catch (Exception e){ System.out.println(e.getMessage()); } supprimer.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == supprimer){ int rowSelected = jTable.getSelectedRow(); int idSelected = (int) jTable.getValueAt(rowSelected, 0); System.out.println(idSelected); ProductDaoImpl pdi = new ProductDaoImpl(); pdi.delete(idSelected); System.out.println("element supprimer: "+idSelected); model.removeRow(rowSelected); } } }); ajouter.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (e.getSource()==ajouter){ JFrame ajouter_data = new JFrame("Ajouter données"); JPanel main = new JPanel(); JButton valider = new JButton("OK"); valider.setPreferredSize(new Dimension(60,20)); JTextField name = new JTextField("Nom"); name.setForeground(Color.gray); name.setPreferredSize(new Dimension(100,20)); name.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { name.setText(""); name.setForeground(Color.black); } }); JTextField historique = new JTextField("Historique"); historique.setForeground(Color.gray); historique.setPreferredSize(new Dimension(100,20)); historique.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { historique.setText(""); historique.setForeground(Color.black); } }); ajouter_data.setSize(400,300); ajouter_data.setResizable(true); ajouter_data.setLocationRelativeTo(null); ajouter_data.setVisible(true); ajouter_data.setContentPane(main); main.add(name); main.add(historique); main.add(valider); valider.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == valider){ String getName = name.getText(); String getHistorique = historique.getText(); ProductDaoImpl pdi = new ProductDaoImpl(); Product product = new Product(getName, "", getHistorique,""); //insertion donnees dans table product pdi.insert(product); //insertion donnees dans table product model.addRow(new Object[]{product.getId(), product.getNameProduct(), product.getLocalisation(), product.getHistorique()}); ajouter_data.setVisible(false); } } }); } } }); modifier.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == modifier){ JFrame modifier_data = new JFrame("Ajouter données"); JPanel main = new JPanel(); JButton valider = new JButton("OK"); valider.setPreferredSize(new Dimension(60,20)); JTextField name = new JTextField(); name.setPreferredSize(new Dimension(100,20)); JTextField historique = new JTextField(); historique.setPreferredSize(new Dimension(100,20)); int rowSelected = jTable.getSelectedRow(); int idSelected = (int) jTable.getValueAt(rowSelected, 0); String nameSelected = (String) jTable.getValueAt(rowSelected, 1); String historiqueSelected = (String) jTable.getValueAt(rowSelected, 3); name.setText(nameSelected); historique.setText(historiqueSelected); valider.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == valider){ int rowSelected = jTable.getSelectedRow(); int idSelected = (int) jTable.getValueAt(rowSelected, 0); ProductDaoImpl pdi = new ProductDaoImpl(); pdi.delete(idSelected); System.out.println("element supprimer: "+idSelected); model.removeRow(rowSelected); String getName = name.getText(); String getHistorique = historique.getText(); Product product = new Product(getName, "", getHistorique,""); //insertion donnees dans table product pdi.insert(product); //insertion donnees dans table product model.addRow(new Object[]{product.getId(), product.getNameProduct(), product.getLocalisation(), product.getHistorique()}); modifier_data.setVisible(false); Presentation presentation = new Presentation(); presentation.presentation.revalidate(); } } }); modifier_data.setSize(400,300); modifier_data.setResizable(true); modifier_data.setLocationRelativeTo(null); modifier_data.setVisible(true); modifier_data.setContentPane(main); main.add(name); main.add(historique); main.add(valider); } } }); }
Merci
A voir également:
- Affichage Jtable
- Affichage double ecran - Guide
- Windows 11 affichage classique - Guide
- Problème affichage fenêtre windows 10 - Guide
- Pinterest problème affichage ✓ - Forum Réseaux sociaux
- Affichage youtube trop grand ✓ - Forum YouTube
2 réponses
Bonjour,
Pour le scroll :
Après la création du JScrollPane, il faut l'ajouter à la JFrame à la palce de la JTable.
Ainsi, il faut corriger la ligne 43.
Pour le scroll :
Après la création du JScrollPane, il faut l'ajouter à la JFrame à la palce de la JTable.
Ainsi, il faut corriger la ligne 43.
Bonjour,
Jetez un coup d'oeil sur ce code :
https://codes-sources.commentcamarche.net/source/102355-persistance-des-donnees-exemple-d-une-implementation-sans-api
Jetez un coup d'oeil sur ce code :
https://codes-sources.commentcamarche.net/source/102355-persistance-des-donnees-exemple-d-une-implementation-sans-api