|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Registered User
Iscritto dal: Nov 2004
Messaggi: 24
|
Ma java è sordo?
...non mi ascolta la tastiera
![]() ![]() Il mio caso è questo: ho una JTextField in cui inserisco una stringa che rappresenta la porta della mia macchina e finchè non inserisco un numero diverso da zero il bottone di connessione (JToggleButton) rimane inattivo. [E questa parte è fatta! ![]() Vorrei che dopo essersi attivato il bottone, alla pressione del tasto invio succeda un evento di tipo doClick o comunque che corrisponda allo stato selected cioè che venga premuto il bottone avviando la connessione (fine ultimo del programmino).. Mi sono già tagliato con i key listener e col setFocus: con quest'ultimo soprattutto perchè non vorrei perdere il focus sulla casella di testo fino a quando non ho finito a scriverci la porta! ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Registered User
Iscritto dal: Nov 2004
Messaggi: 24
|
*soffia il vento*
oooh c'è nessuno? ![]() ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2004
Città: Acireale
Messaggi: 447
|
Mostra il codice
![]() |
![]() |
![]() |
![]() |
#4 | |
Registered User
Iscritto dal: Nov 2004
Messaggi: 24
|
Quote:
[...] import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; public class ASD extends JFrame { private JLabel txtIp; private JTextField txtPort; private JToggleButton tbConn; private JDialog dialog; private JToggleButton stop; private JToggleButton orario; private JToggleButton antiorario; [...] private JLabel status; private JLabel operation; public PLCAgentFrame() { [...] JPanel pserver=new JPanel(); pserver.setLayout(new GridLayout(0,3)); /** creazione di due JLabel e una JTextField */ pserver.add(txtIp=new JLabel("")); pserver.add(new JLabel(" :")); pserver.add(txtPort=new JTextField("")); txtPort.setEditable(true); /** aggiunta dell'ascoltatore al JTextField */ Document document = txtPort.getDocument(); document.addDocumentListener(new TextHandle()); pserver.setBorder(BorderFactory.createEtchedBorder(0)); pinfo.add(BorderLayout.SOUTH,pserver); /** sub-pannello north-east */ JPanel pconn=new JPanel(); pconn.setLayout(new BorderLayout()); pconn.setBorder(BorderFactory.createEmptyBorder(10,10,10,0)); /** creazione del ToggleButton di connessione */ pconn.add(tbConn=new JToggleButton(new ImageIcon( "../img/semaforo_rosso.gif"),false)); tbConn.setSelectedIcon(new ImageIcon("../img/semaforo_giallo.gif")); tbConn.setToolTipText("Start Listening"); tbConn.addItemListener(new JToggleButtonListener()); tbConn.setEnabled(false); psetup.add(BorderLayout.EAST,pconn); [...] } /** ascoltatore del ToggleButton di connessione */ class JToggleButtonListener implements ItemListener { public void itemStateChanged(ItemEvent e) { int status=e.getStateChange(); if(status==ItemEvent.SELECTED) { /** chiamata al metodo startListen() */ agentePLC.startListen(); txtIp.setEnabled(true); txtPort.setEnabled(true); txtPort.setEditable(false); } else { agentePLC.stopListen(); txtPort.setEditable(true); } } } [...] /** ascoltatore della JTextArea txtPort */ class TextHandle implements DocumentListener { public void insertUpdate(DocumentEvent event){ String sString = txtPort.getText(); try{ /** settaggio della porta di connessione */ int iValue = Integer.parseInt(sString); if (iValue != 0){ tbConn.setEnabled(true); agentePLC.setPort(iValue); } } catch(NumberFormatException nfe){ tbConn.setEnabled(false); } } public void removeUpdate( DocumentEvent event ) { if( txtPort.getText().length() == 0 ){ tbConn.setEnabled( false ); } else { insertUpdate( event ); } } public void changedUpdate( DocumentEvent event ) { } } [...] } Ultima modifica di FonzieTi4200 : 10-11-2004 alle 17:34. |
|
![]() |
![]() |
![]() |
#5 |
Registered User
Iscritto dal: Nov 2004
Messaggi: 24
|
Ah ci sono molti riferimenti ad un altra classe ma per il mio problema non ce n'è bisogno voglio solo aggiungere il fatto che dopo aver messo del testo nella txtPort e aver premuto invio si prema il bottone tbConn: ora come ora ci devo andare per forza a cliccare col mouse...
![]() |
![]() |
![]() |
![]() |
#6 |
Registered User
Iscritto dal: Nov 2004
Messaggi: 24
|
Ehm... un'anima pia?
![]() |
![]() |
![]() |
![]() |
#7 |
Registered User
Iscritto dal: Nov 2004
Messaggi: 24
|
Potete cancellare il topic ho risolto
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:24.