Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [SWING] inputDialog multicampo???

    ho usato con profitto una inputDialog per chiedere ad un utente l'inserimento di un valore... adesso avrei bisogno della stessa cosa ma con 4 campi, per leggere 4 valori diversi.
    Come possso fare?
    Sono totalmente inesperto di swing, ma ho urgeenza estrema... instradatemi, vi prego

  2. #2
    vi prego.. sono disperato.. devo consegnare domani il progetto.. manca solo questa cosa e ho pure la febbre alta

    Mi serve solo per fare un pannellino di opzioni.. come posso fare???

    Grazie

  3. #3
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Chiedi i 4 valori in 4 inputDialog diversi, oppure li fai separare da virgola (o da qualsiasi altro carattere) nella stessa inputDialog.
    La soluzione più elegante sarebbe un piccolo JDialog fatto da te con 4 texfield ed 1 bottone, ma devi gestire gli eventi, non è semplice come inputDialog.
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  4. #4
    Originariamente inviato da Leo15
    Chiedi i 4 valori in 4 inputDialog diversi, oppure li fai separare da virgola (o da qualsiasi altro carattere) nella stessa inputDialog.
    La soluzione più elegante sarebbe un piccolo JDialog fatto da te con 4 texfield ed 1 bottone, ma devi gestire gli eventi, non è semplice come inputDialog.

    non mi spavento dai.. l'importante è farla elegante
    chiaramente avevo pensato alla Jdialog.. ma mi sfugge come posso leggere i dati dall'applicazione principale una volta premuto il bottone... se sai instradarmi su questo te ne sono grato

  5. #5
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Ci sono diverse soluzioni. La più facile, secondo me, è avere 2 metodi: pre_input() e post_input().
    Esegui tutti i calcoli e le elaborazioni che vuoi nel pre_input(); nel momento in cui ti serve l'input utente fai partire un JDialog, salvi l'input e fai partire (dal metodo che gestisce l'actionPerformed del JButton) il post_input().

    Ho fatto al volo un paio di classi, vedi se vanno bene.

    codice:
    /*
     * InputUtente.java
     *
     * Created on 7 febbraio 2007, 19.15
     */
    
    import javax.swing.*;
    
    public class InputUtente {
    	private static String [] dati_utente;
    	
    	public static void main(String [] args) {
    		pre_input();
    	}
    	
    	public static void pre_input() {
    		//In questo metodo fai tutti i calcoli che vuoi.
    		dati_utente = new String[4];
    		
    		myInputDialog mid = new myInputDialog();
    		
    		//Fai partire il JDialog per l'input
    		mid.askUserInput(dati_utente);
    	}
    	
    	public static void post_input() {
    		//Qui elabori l'input dell'utente.
    		for(int i=0; i<dati_utente.length; i++)
                        System.out.println(dati_utente[i]);
    	}
    }
    
    class myInputDialog extends javax.swing.JDialog {
        
        public myInputDialog() {
            this(null, true);
        }
        /** Creates new form myInputDialog */
        public myInputDialog(java.awt.Frame parent, boolean modal) {
            super(parent, modal);
            initComponents();
        }
        
        //Metodo che fa comparire il JDialog per l'input
        public void askUserInput(String [] dati_utente) {
            this.dati_utente = dati_utente;
            this.setVisible(true);
        }
        
        //Metodo generato dal GUI designer di NetBeans, puoi modificarlo come meglio credi
        private void initComponents() {
            jButton1 = new javax.swing.JButton();
            jTextField1 = new javax.swing.JTextField();
            jTextField2 = new javax.swing.JTextField();
            jTextField3 = new javax.swing.JTextField();
            jTextField4 = new javax.swing.JTextField();
    
            setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
            setTitle("Input Utente");
            jButton1.setText("OK");
            jButton1.addActionListener(new java.awt.event.ActionListener() {
                public void actionPerformed(java.awt.event.ActionEvent evt) {
                    inputInserito(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(jTextField4, javax.swing.GroupLayout.DEFAULT_SIZE, 360, Short.MAX_VALUE)
                        .addComponent(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 360, Short.MAX_VALUE)
                        .addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 360, Short.MAX_VALUE)
                        .addComponent(jTextField1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 360, Short.MAX_VALUE)
                        .addComponent(jButton1, javax.swing.GroupLayout.Alignment.TRAILING))
                    .addContainerGap())
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addGap(23, 23, 23)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jTextField4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            );
            pack();
        }                    
    	//Gestore dell'actionPerformed per il JButton
        private void inputInserito(java.awt.event.ActionEvent evt) {                               
            this.dati_utente[0] = jTextField1.getText();
            this.dati_utente[1] = jTextField2.getText();
            this.dati_utente[2] = jTextField3.getText();
            this.dati_utente[3] = jTextField4.getText();
            
            InputUtente.post_input();
            this.dispose();
        }                              
    
                   
        private javax.swing.JButton jButton1;
        private javax.swing.JTextField jTextField1;
        private javax.swing.JTextField jTextField2;
        private javax.swing.JTextField jTextField3;
        private javax.swing.JTextField jTextField4;
                     
        private String [] dati_utente;
    }
    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  6. #6
    Grandissimo!

    Disegno della gui a parte, ce l'ho fatta quasi senza fatica.. nonostante la febbre, e giusto in tempo per la consegna

    Grazie mille

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.