Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16

Discussione: immagini nelle jTable

  1. #11
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    72

    ti spiego

    ti faccio vedere il codice:
    codice:
    public class aesdJFrame extends javax.swing.JFrame {
    Connection conn=null;
    ResultSet rs=null;
    PreparedStatement pst=null;
    private void UpdateJTable(){
        String sql="select * from Tabella1";
        try{
            pst=conn.prepareStatement(sql);
            rs=pst.executeQuery();
            jTable2.setModel(DbUtils.resultSetToTableModel(rs));
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }}
        public aesdJFrame() {
            initComponents();
        }                    
        private void initComponents() {
            jScrollPane1 = new javax.swing.JScrollPane();
            jTable1 = new javax.swing.JTable();
            txtid = new javax.swing.JTextField();
            cmdsave = new javax.swing.JButton();
            jLabel1 = new javax.swing.JLabel();
            jLabel2 = new javax.swing.JLabel();
            jLabel3 = new javax.swing.JLabel();
            jLabel4 = new javax.swing.JLabel();
            txtname = new javax.swing.JTextField();
            txtaddress = new javax.swing.JTextField();
            txtage = new javax.swing.JTextField();
            jScrollPane2 = new javax.swing.JScrollPane();
            jTable2 = new javax.swing.JTable();
            jLabel5 = new javax.swing.JLabel();
            txtsearch = new javax.swing.JTextField();
            cmdupdate = new javax.swing.JButton();
            cmddelete = new javax.swing.JButton();
            cmdcombo = new javax.swing.JButton();
            cmbprint = new javax.swing.JButton();
            jLabel6 = new javax.swing.JLabel();
            jButton1 = new javax.swing.JButton();
            jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {null, null, null, null},
                    {null, null, null, null},
                    {null, null, null, null},
                    {null, null, null, null}
                },
                new String [] {
                    "Title 1", "Title 2", "Title 3", "Title 4"
                }
            ));
            jScrollPane1.setViewportView(jTable1);
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            addWindowListener(new java.awt.event.WindowAdapter() {
                public void windowOpened(java.awt.event.WindowEvent evt) {
                    formWindowOpened(evt);
                }
            });
            cmdsave.setText("Save");
            cmdsave.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    cmdsaveMouseClicked(evt);
                }
            });
            jLabel1.setText("id");
            jLabel2.setText("Name");
            jLabel3.setText("Address");
            jLabel4.setText("age");
            jTable2.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {null, null, null, null},
                    {null, null, null, null},
                    {null, null, null, null},
                    {null, null, null, null},
                    {null, null, null, null}
                },
                new String [] {
                    "ID", "Name", "Address", "Age", "foto"
                }
            ));
            jTable2.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    jTable2MouseClicked(evt);
                }
            });
            jScrollPane2.setViewportView(jTable2);
            jLabel5.setText("age");
            txtsearch.addKeyListener(new java.awt.event.KeyAdapter() {
                public void keyReleased(java.awt.event.KeyEvent evt) {
                    txtsearchKeyReleased(evt);
                }
            });
            cmdupdate.setText("Update");
            cmdupdate.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    cmdupdateMouseClicked(evt);
                }
            });
            cmddelete.setText("Delete");
            cmddelete.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    cmddeleteMouseClicked(evt);
                }
            });
            cmdcombo.setText("Combo");
            cmdcombo.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    cmdcomboMouseClicked(evt);
                }
            });
            cmbprint.setText("Print");
            cmbprint.addMouseListener(new java.awt.event.MouseAdapter() {
                public void mouseClicked(java.awt.event.MouseEvent evt) {
                    cmbprintMouseClicked(evt);
                }
            });
            jButton1.setText("Seleziona Foto");
            jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    jButton1ActionPerformed(evt);
                }
            });
            javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 484, Short.MAX_VALUE)
                        .addComponent(jLabel2)
                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGroup(layout.createSequentialGroup()
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addComponent(jLabel3)
                                .addComponent(jLabel4))
                            .addGap(18, 18, 18)
                           .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                .addGroup(layout.createSequentialGroup()
                                    .addComponent(cmdsave)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jLabel5)
                                    .addGap(18, 18, 18)
                                    .addComponent(txtsearch, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGap(37, 37, 37)
                                    .addComponent(jButton1))
                                .addGroup(layout.createSequentialGroup()
                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                        .addComponent(txtid, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(txtaddress, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(txtage, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addComponent(txtname, javax.swing.GroupLayout.PREFERRED_SIZE, 139, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(cmbprint)
                                        .addComponent(cmdcombo)
                                        .addComponent(cmddelete)
                                        .addComponent(cmdupdate))))))
                    .addContainerGap())
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(340, 340, 340)
                        .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(38, Short.MAX_VALUE)))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                        .addGroup(layout.createSequentialGroup()
                            .addContainerGap()
                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel1)
                                .addComponent(txtid, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(cmdupdate))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                          .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel2)
                                .addComponent(txtname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(cmddelete))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel3)
                                .addComponent(txtaddress, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(cmdcombo))
                            .addGap(12, 12, 12)
                          .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(jLabel4)
                                .addComponent(txtage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(cmbprint))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                          .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                .addComponent(cmdsave)
                                .addComponent(jLabel5)
                                .addComponent(txtsearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
                        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                            .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jButton1)
                            .addGap(14, 14, 14)))
                    .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 110, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(214, Short.MAX_VALUE)))
            );
            pack();
        }                        
                                 
     private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
            conn=Connect.ConnectDB();
            UpdateJTable();
        }                                 
        private void jTable2MouseClicked(java.awt.event.MouseEvent evt) {                                     
            int row=jTable2.getSelectedRow();
            txtid.setText(jTable2.getModel().getValueAt(row, 0).toString());
            txtname.setText(jTable2.getModel().getValueAt(row, 1).toString());
            txtaddress.setText(jTable2.getModel().getValueAt(row, 2).toString());
            txtage.setText(jTable2.getModel().getValueAt(row, 3).toString());
        }                                    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                     
            JFileChooser fc=new JFileChooser();
            fc.showOpenDialog(this);
            File f=fc.getSelectedFile();
            String path=f.getAbsolutePath();
            jLabel6.setIcon(new ImageIcon(path));

  2. #12
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    72
    non ho messo gli import vari che sono quelli messi in precedenza e alcuni comandi tipo il delete e salva e altri comandi vari perchè non centra e per questo l'ho dovuto attaccare tutto, nel comando save che non ho messo c'è una query di insert, il database è access, il programma che uso per programmare in java è netbeans, così intendevi?, ciao grazie

  3. #13
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da ciberp Visualizza il messaggio
    non ho messo gli import vari che sono quelli messi in precedenza e alcuni comandi tipo il delete e salva e altri comandi vari perchè non centra e per questo l'ho dovuto attaccare tutto, nel comando save che non ho messo c'è una query di insert, il database è access, il programma che uso per programmare in java è netbeans, così intendevi?, ciao grazie
    Beh, non serviva tutta la "sbrodolata" di codice fumoso, noioso, illeggibile generato dal IDE .... il punto "chiave" è uno solo:

    Quote Originariamente inviata da ciberp Visualizza il messaggio
    codice:
            jTable2.setModel(DbUtils.resultSetToTableModel(rs));
    Dato il ResultSet (e presumo utilizzando anche i metadati cioè ResultSetMetaData), quel metodo "resultSetToTableModel" va a creare una istanza di un certo table model X che contiene ed "espone" tutti i dati.

    Ripeto che io non conosco quel DbUtils. Le domande potrebbero essere quindi:

    - quale è e come è fatta la implementazione di questo table model? (io non lo so)
    - che cosa "espone" come Class per la colonna della immagine? (io non lo so)
    - come estrae materialmente i dati della immagine? (io non lo so)

    Il punto è tutto lì. Quel DbUtils chi l'ha fatto? (io non lo so). È eventualmente configurabile? (io non lo so).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #14
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    72
    non è che mi sapresti indicare un tutorial funzionante per quello che voglio fare?, anche in inglese va bene, per estrarre e far vedere l'immagine ancora non c'è perchè è quello che non riesco a fare, il codice che hai visto (escludendo i comandi per salvare cancellare modificare e qualche altro comando)è quello che c'è, l'immagine oltre che nella tabella del programma java che si chiama jTable2 deve comparirmi nella lable che si chiama jLable6 quando seleziono un dato (es. nome, cognome ecc) in quella tabella(jTable2), spero sia questo che intendevi sapere, mi spiace che non riesco a capire quello che vuoi sapere, fammi sapere ok?, ciao grazie

  5. #15
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da ciberp Visualizza il messaggio
    non è che mi sapresti indicare un tutorial funzionante per quello che voglio fare?, anche in inglese va bene, per estrarre e far vedere l'immagine ancora non c'è perchè è quello che non riesco a fare
    Se non vuoi affidarti a quella "scatola nera" che è quel DbUtils.resultSetToTableModel, allora devi fare sostanzialmente tu tutto quello che fa (e presumo molto generalizzato) lì dentro in quel metodo.
    Ovvero: implementazione di un apposito table model (o uso di uno predefinito), loop sul ResultSet, estrazione dati dalle colonne, eventuali conversioni, rilascio corretto delle risorse, ecc....

    Servono discrete/buone conoscenze su:
    - JDBC, tutorial ufficiale: Trail: JDBC(TM) Database Access.
    - JTable e i table model (e renderer/editor se necessario), tutorial ufficiale: How to Use Tables
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #16
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    72

    ok

    Quote Originariamente inviata da andbin Visualizza il messaggio
    Se non vuoi affidarti a quella "scatola nera" che è quel DbUtils.resultSetToTableModel, allora devi fare sostanzialmente tu tutto quello che fa (e presumo molto generalizzato) lì dentro in quel metodo.
    Ovvero: implementazione di un apposito table model (o uso di uno predefinito), loop sul ResultSet, estrazione dati dalle colonne, eventuali conversioni, rilascio corretto delle risorse, ecc....

    Servono discrete/buone conoscenze su:
    - JDBC, tutorial ufficiale: Trail: JDBC(TM) Database Access.
    - JTable e i table model (e renderer/editor se necessario), tutorial ufficiale: How to Use Tables
    ok proverò quei tutorial, ti ringrazio tantissimo per l'aiuto a buon rendere ok?, ciao grazie ancora :-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.