View Full Version : [JAVA]Problema Interfaccia grafica
domenico88
04-02-2011, 17:10
ciao a tutti, ho fatto questa semplice interfaccia con java (a mano)
http://img690.imageshack.us/i/interfaccimes.jpg/
ora il mio problema è questo, quando voglio creare il listener dei tasti della qwerty come faccio a dare al listener il tasto desiderato e quindi visualizzarlo nell'area di testo?
Altrimenti dovrei creare un listener per ogni tasto, ma non mi sembra una soluzione molto elegante...Help please!
Basta un action listener per tutti. Se lo usi solo coi pulsanti sai che la sorgente dell'evento ActionEvent è un pulsante, puoi prendere il carattere dall'etichetta o usare il comando associato.
ActionListener listener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
String lettera = e.getActionCommand();
jTextArea.append(lettera);
/* oppure
AbstractButton button = (AbstractButton) e.getSource();
String lettera = button.getText();
jTextArea.append(lettera);
*/
}
}
Usi "listener" per tutti i pulsanti e sei a posto.
Il valore di "getActionCommand" è pari al valore del campo actionCommand (setActionCommand/getActionCommand) del pulsante che di norma è il testo del pulsante.
Se:
JButton b = new JButton("q");
allora b.getActionCommand vale "q"
Se:
JButton b = new JButton("q");
b.setActionCommand("pippo");
allora b.getActionCommand vale "pippo".
domenico88
04-02-2011, 22:52
si grazie...:D
Del tipo
class QwertyListener implements ActionListener{
private int i;
public QwertyListener(int i){
this.i = i;
}
public void actionPerformed(ActionEvent e) {
String c = e.getActionCommand();
AreaCaratteri.append(c);
}
e aggianciato ai pulsanti in questo modo nel costruttore della classe principale
for(int i=0; i<qwerty.length; i++){
qwerty[i] = new JButton();
qwerty[i].addActionListener(new QwertyListener(i));
}
bah però non ho capito come fa 'getActionCommand()' a sapere quale pulsante ho premuto:confused:
Shinnok.Exor
04-02-2011, 23:07
bah però non ho capito come fa 'getActionCommand()' a sapere quale pulsante ho premuto:confused:
E a cosa ti serve sapere quale pulsante hai premuto ? :)
A te serve un ActionListener che prenda il testo del button cliccato e lo appenda nel JTextBox, indifferentemente dal bottone premuto, lui fa queste azioni.
domenico88
04-02-2011, 23:17
e lo so hai perfettamenta ragione:D solo che i prof all'uni so rompi....ecc ecc:D
possono chiedere queste cose...cioè cosa accade quando premiamo su un bottone...è stato chiesto a questo esame...io devo ancora scoprirlo però:D
Shinnok.Exor
04-02-2011, 23:25
e lo so hai perfettamenta ragione:D solo che i prof all'uni so rompi....ecc ecc:D
possono chiedere queste cose...cioè cosa accade quando premiamo su un bottone...è stato chiesto a questo esame...io devo ancora scoprirlo però:D
Semplicemente il pulsante richiama il metodo actionPerformed passandogli l'oggetto che ha generato l'azione.
Con questo codice
qwerty[i].addActionListener(new QwertyListener(i));
semplicemente passi l'oggetto del quale il pulsante richiamerà il metodo actionPerformed(), di cui precedentemente ne hai fatto l'override
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.