Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Passaggio di valori da una JTable ad una JDialog

    Salve amici, volevo chiedervi la seguente cosa..
    Io ho una JTable con dei valori all'intero, ora selezionando una riga e cliccando un pulsante vorrei farmi aprire una JDialog con all'interno i campi della riga selezionata, in modo che io li possa modificare, quindi probabilmente dovranno comparire all'interno delle JTextField.
    mi date qualche suggerimento su come posso fare?
    ciao e grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Come in tutti i casi in cui vuoi passare dei parametri da una classe ad un altra.
    Il modo piu' semplice' e' da costruttore.
    Scrivi una classe che estende JDialog e metti un costruttore apposito.

    P.s. Avevi gia' un post aperto con la stessa domanda.

  3. #3
    per quando riguarda il post aperto hai ragione, ma purtroppo questo diventa un altro argomento. e continuando quel post si rischia di uscire fuori tema e non si capisce più niente.
    questo invece riguarda proprio far apparire una finestra secondaria con i dati della JTable.
    cmq io pensavo che si potesse fare senza creare un'altra classe, tipo come quando chiami JOptionPane e ti esce quel popup..non si può fare così?
    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    15
    certo che puoi: ti crei un jdialog con all'interno tutto quello che ti serve, ovvero le jtextfield per modificare i campi, e quando premi il bottone per fare aprire il jdialog imposti il testo delle jtextfield
    prendendolo dai dovuti campi della tabella, quando poi chiudi il dialog o premendo un bottono che vuoi tu imposti il valore delle celle della tabella con quello che è impostato nelle varie jtextfield.
    se ti serve ti posso postare un pezzo di codice che fa proprio questo.

  5. #5
    ranius99 saresti troppo gentile a fare questa cosa, ti ringrazio tanto.
    così provo ad applicarlo al mio programma..e vediamo se va tutto bene..
    ciao e grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    15
    Ecco il codice:

    codice:
            private static JTextField txt1 = new JTextField(10);
    	private static JTextField txt2 = new JTextField(10);
    	private static JTextField txt3 = new JTextField(10);
    	private static JTextField txt4 = new JTextField(10);
            //In questo esempio la tabella ha 4 colonne
    
    	private static DefaultTableModel mdl = new DefaultTableModel();
    	private static JTable tblIns = new JTable(mdl); //La tua tabella
    
    	private static JScrollPane sclTbl = new JScrollPane(tblIns);
    	private static JButton bti;
            private static JDialog dialog = new JDialog();
    
            int row = 0;
    
    	private static Action apriDialog = new AbstractAction("Ok") 
    	{
    		private static final long serialVersionUID = 1L;
    
    		public void actionPerformed(ActionEvent evt) 
    		{
    			row = tblIns.getSelectedRow();
                            txt1.setText((String) tblIns.getValueAt(row, 0 /*numero colonna*/));
                            txt2.setText((String) tblIns.getValueAt(row, 1));
                            txt3.setText((String) tblIns.getValueAt(row, 2));
                            txt4.setText((String) tblIns.getValueAt(row, 3));
                            txt4.setText((String) tblIns.getValueAt(row, 3));
    		}
    	};
    
    private static WindowListener wnlGUIExit = new WindowAdapter() 
    	{
    		private static final long serialVersionUID = 1L;
    		
    	        public void windowClosing(WindowEvent arg0) {
    		       tblIns.setValueAt(txt1.getText(), row, 0);
    
    		       tblIns.setValueAt(txt2.getText(), row, 1);
    
    		       tblIns.setValueAt(txt3.getText(), row, 2);
    
    		       tblIns.setValueAt(txt4.getText(), row, 3);
    
    		}
    		
    		}
    	};
        
    	public static void main(String args[]){
    		JFrame frm = new JFrame();
                    bti = new JButton(apriDialog);
                    dialog.addWindowListener(wnlGUIexit);
                    //Popola la tabella come serve a te
    
                    dialog.add(txt1); //aggiungi le JTextField come vuoi tu al JDialog
                    dialog.add(txt2);
                    dialog.add(txt3); 
                    dialog.add(txt4);
                    frm.add(tblIns, BorderLayout.NORTH)
                    frm.add(bti, BorderLayout.SOUTH)
    frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frm.pack();
    frm.setVisible();
    	}
    Questo è quello che farei io implementandolo leggermente

  7. #7
    scusa ranius99 ma non ho ben capito..
    se io ho la mia classe "interfaccia" ed ho la mia JTable al suo interno.

    sempre all'interno di questa classe io mi creo

    private static JTextField txt1 = new JTextField(10);
    private static JTextField txt2 = new JTextField(10);
    private static JTextField txt3 = new JTextField(10);
    private static JTextField txt4 = new JTextField(10);
    private static JTextField txt5 = new JTextField(10);

    i campi che mi servono.

    e poi mi sono perso perchè non capisco come funziona
    codice:
    private static JButton bti; //questo sarebbe il pulsante che mi apre la JDIALOG?
    
    	private static Action ok = new AbstractAction("Ok") 
    	{
    		private static final long serialVersionUID = 1L;
    
    		public void actionPerformed(ActionEvent evt) 
    		{
    			int row = tblIns.getSelectedRow();
    
    		}
    	};
    sto pezzo sopra non ho ben capito che cosa fa, a parte l'indice di riga che viene selezionato.
    ma poi come fa a scrivere nelle JTextField?
    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    15
    considera però che i jtextfield se li aggiungi come ho scritto io te li mette tutti uno sopra l'altro quindi se ne hai molti ti conviene usare un GridBagLayout col quale ordinarli nella Jdialog.
    Se c'è qualcosa che non ti è chiaro dimmi pure....
    ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    15
    scusa ma mentre stavo scrivendo il codice ho premuto il pulsante per postare ora ho modificato prova a guardare adesso il codice che ti ho scritto.
    si quello è il bottono che apre la jdialog

  10. #10
    ""scusa ma mentre stavo scrivendo il codice ho premuto il pulsante per postare ora ho modificato prova a guardare adesso il codice che ti ho scritto.""

    nessun problema ranius99, figurati.
    cerco adesso di riadattarlo al mio e vediamo che ne esce fuori, ti faccio sapere.
    ciao e grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.