PDA

View Full Version : [Java] Richiedere il focus su un JButton


Mazza2
03-06-2004, 15:52
ho un jdialog con 2 pulsanti, come faccio all'apertura a fare in modo che il focus sia su uno di questi due? con il metodo requestFocus non succede niente... bho

kingv
03-06-2004, 16:16
hai ragione non funziona :wtf:

PGI
03-06-2004, 20:20
Richiedi il cambiamento del focus dopo la visualizzazione della finestra?

Mazza2
03-06-2004, 22:30
Originariamente inviato da PGI
Richiedi il cambiamento del focus dopo la visualizzazione della finestra?


il codice e' questo:



text = new JTextField();
text.setBounds(80,20,125,20);
text.setText("172.20.56.52");


ip1 = new JLabel("IP:");
ip1.setBounds(10,15,120,30);


si1 = new JButton("Ok");
si1.setBounds(75,60,60,20);
si1.requestFocus();


no = new JButton("Annulla");
no.setBounds(145,60,90,20);

pan = new JPanel();
pan.setLayout(null);

pan.add(ip1);
pan.add(text);
pan.add(si1);
pan.add(no);

si1.addActionListener(this);
no.addActionListener(this);

diag = new JDialog(this,"Connetti",true);
diag.setBounds(this.getX()+10,this.getY()+10,300,110);
diag.setResizable(false);
diag.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);





diag.getContentPane().add(pan);



diag.show();






faccio requestFocus sul pulsante si1 .... ma non lo focusa

PGI
03-06-2004, 22:35
questo:

si1.requestFocus();

mettilo dopo questo:

diag.show();

requestFocus() dovrebbe essere sostituiti con requestFocusInWindow().

Ciao.

Mazza2
03-06-2004, 22:45
niente, ho provato anche a cambiare l'ordine in cui creo i componenti mettendo prima il pulsante, ma niente. Il focus va sempre al campo di testo! :muro:

PGI
03-06-2004, 23:01
Aspetta, qui la questione non è "provare" a mettere qualcosa dopo qualcos'altro.

Le richieste di possesso del focus devono essere risolte dopo che la finestra in cui il componente è inserito è stata visualizzata. Altrimenti vengono semplicemente ignorate.

Dopodichè, che il campo di testo "prevalga" sul bottone non è, in fondo, irragionevole.

Resta da capire come saltare questo passaggio e attribuire al bottone il focus in prevalenza sul campo di testo.

Questione che risolviamo a breve.