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

    Domanda su Windows Builder e JTextField

    Buonasera a tutti,
    sto "giocando" un po' con Windows Builder scrivendo un programma a finestre molto semplice.
    O meglio, questa sarebbe l'intenzione. Sono bloccata alla prima finestra di dialogo, in cui ho inserito un TextField per far si che l'utente scriva il suo nome nella casella.
    Quando lancio il programma però, dopo aver premuto invio, il nome non viene acquisito... Immagino che sia necessario utilizzare qualche metodo particolare che a me sfugge. Ho provato a fare una ricerca nelle API, ma dire che non sono pratica è un complimento.

    Il segmento di codice che dovrebbe acquisire la stringa è questo:

    codice:
    JTextPane cominciare = new JTextPane();        
            cominciare.setEditable(false);
            cominciare.setBackground(SystemColor.menu);
            cominciare.setFont(new Font("Calibri", Font.PLAIN, 16));
            cominciare.setText("Per cominciare, inserisci il tuo nome:");
            cominciare.setBounds(100, 153, 361, 35);
            cominciare.setAlignmentY(CENTER_ALIGNMENT);
            contentPane.add(cominciare);
            
            nome = new JTextField();
            nome.setHorizontalAlignment(SwingConstants.CENTER);
            nome.setFont(new Font("Calibri", Font.PLAIN, 16));
            nome.setBounds(153, 199, 130, 26);
            contentPane.add(nome);

    Come potete vedere il tutto fa ben poco (anzi nulla).

    Arrivando al sodo: come faccio ad acquisire una parola, memorizzandola in una variabile per poterla utilizzare successivamente?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Domanda numero 1: contentPane chi è?
    Domanda numero 2: contentPane che LayoutManager usa?
    Domanda numero 3: che te ne fai di un JTextPane?
    Domanda numero 4: chi è che dovrebbe gestire la pressione del pulsante INVIO?

    Finite le domande, passiamo al primo step: una JTextField è un componente che serve a ottenere una stringa in input dall'utente. Quando si vuole "acquisire" tale stringa, semplicemente la si ricava invocando su di essa il metodo getText() (è un metodo che è presente in TUTTI i componenti che lavorando con del testo).

    Quindi, vuoi ricavare il testo scritto dall'utente nella JTextField "nome" in una variabile String?

    codice:
    String testo = nome.getText();

    Infine alcuni consigli:
    1) Abbandona Windows Builder (qualunque cosa esso sia): se stai iniziando a lavorare con le GUI, il miglior modo (e l'unico, fidati!) per imparare è quello di prendere un editor di testo (magari con un minimo di evidenziazione del testo... io uso tuttora il blocco note di Windows, ma "ci sono abituato") e tenere a portata di mano un buon libro o, quantomeno, il tutorial ufficiale (salterei inizialmente il capitolo "Learning Swing with the NetBeans IDE", che è abbastanza inutile).

    2) Studia come funziona Swing

    3) Costruisciti dei piccoli programmini e provali da riga di comando: è importantissimo saper leggere le eccezioni, saperle capire, saperle correggere e saperle "prevenire".

    4) Metti in conto tante ore di studio e tanta fatica inizialmente.


    Ciao.
    Ultima modifica di LeleFT; 21-02-2014 a 12:52
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Grazie per i preziosissimi consigli che seguirò sicuramente.

    Windows Builder è un plugins di Eclipse (https://www.eclipse.org/windowbuilder/) per la creazione di interfacce grafiche.
    Dovrò imparare a usarlo prima o poi, tanto vale che lo faccia da ora.
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.