Da package a jframe

di il
6 risposte

Da package a jframe

Dal codice dentro un package avrei bisogno di far riferimento da un JtextField in un jframe per assegnargli una stringa, come faccio?

In pratica nel package ho una classe che rileva una combinazione di tasti a cui dovrebbe seguire l'assegnazione di una stringa al jTextField:

if(evt.getKeyCode() == KeyEvent.VK_T){
         JOptionPane.showMessageDialog(null,"premuto CTRL+T");
 } 

6 Risposte

  • Re: Da package a jframe

    JJhon ha scritto:


    Dal codice dentro un package avrei bisogno di far riferimento da un JtextField in un jframe per assegnargli una stringa, come faccio?
    Che detto così vuol dire poco/nulla. Mostra del codice, evidenziando quali sono le classi coinvolte, in che package sono e che cosa contengono come campi.
  • Re: Da package a jframe

    
    package pubblico;
    
    
    import java.awt.Robot;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyAdapter;
    import java.awt.event.KeyEvent;
    import javax.swing.JOptionPane;
    
    public class KeyTab extends KeyAdapter {
              @Override  
              public void keyReleased(KeyEvent evt) {
                    //JTextField textField = (JTextField) evt.getSource();
                    //String text = textField.getText();
                    //textField.setText(text.toUpperCase());
                }
              @Override
                public void keyTyped(KeyEvent evt) {
                      }
              @Override
                public void keyPressed(KeyEvent evt) {
                   String txtname;
                    if(evt.getKeyCode() == KeyEvent.VK_ENTER){
                        try {
                            Robot r = new Robot();
                            r.keyPress(KeyEvent.VK_TAB);
                            
                }
                    catch(Exception e){
                            JOptionPane.showMessageDialog(null, e);   
                    }
                    }
                    
                    [b] if((evt.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK) {
                         try {
                        if(evt.getKeyCode() == KeyEvent.VK_D){
                            JOptionPane.showMessageDialog(null,"premuto CTRL+D");
                            }
                        if(evt.getKeyCode() == KeyEvent.VK_T){
                            
                            JOptionPane.showMessageDialog(null,"premuto CTRL+T");
                            
                         }[/b]
                         }
                    catch(Exception e){
                            JOptionPane.showMessageDialog(null, e);   
                    }
                    }               
                }          
                } 
                
            }
    
    Premendo CTRL+T dovrei assegnare la string "Torino" ad JTextField in un jFrame
  • Re: Da package a jframe

    Devi avere un reference alla classe dove intendi completare automaticamente il campo.
    Dalla classe che hai postato non vedo alcun reference.

    Inotre ci vuole un metodo (nella classe gui) che possa fare quanto detto da te, solitamente tutti gli attributi sono private quindi non è possibile accedervi direttamente.

    Ciao.
  • Re: Da package a jframe

    Forse pensavi di avere a che fare con un esperto....
    In realtà sono un dilettante autodidatta e in passato ho sviluppato in Visual basic qualcosa per la mia attività e mi sto avvicinando solo ora a java.
    Mi sembra di capire che dovrei scrivere un riferimento (reference?) ad una classe.
    Se la mia jFrame dove è contenuto il jTextField a cui assegnare la stringa si chiama NuovoCliente.java
    Come si scrive un reference alla classe?
    Mi potresti per cortesia fare un esempio in base al codice che ho postato?
    Ti ringrazio.
  • Re: Da package a jframe

    JJhon ha scritto:


    Mi sembra di capire che dovrei scrivere un riferimento (reference?) ad una classe.
    Se la mia jFrame dove è contenuto il jTextField a cui assegnare la stringa si chiama NuovoCliente.java
    Come si scrive un reference alla classe?
    Prima questione: questo text field è quello "sorgente" degli eventi che vedo stai gestendo in KeyTab? Se sì ... il riferimento ce l'hai.

    Se è un altro text field, allora la cosa più semplice, immediata e scontata sarebbe quella di tenere dentro la istanza di KeyTab il riferimento ad un JTextField, passato al costruttore.

    public class KeyTab extends KeyAdapter {
        private JTextField textField;
    
        public KeyTab(JTextField textField) {
            this.textField = textField;
        }
    
        // ........usa textField dove ti pare nei metodi del listener ecc..
    }
    Da qualche parte istanzierai un KeyTab e in quel punto chiaramente dovrai avere nozione di quale text field passare al costruttore.

    Tecnicamente funziona ma qui entriamo in aspetti di "design" di cui non so quanto sei ferrato.
  • Re: Da package a jframe

    Ho risolto così:
    
    JTextField textField = (JTextField) evt.getComponent() ;
    textField.setText("Torinoa");
    
    Grazie della collaborazione.
    Ciao
Devi accedere o registrarti per scrivere nel forum
6 risposte