Far ottenere il Focus ad un'elemento

Sevenjeak

Utente Attivo
27 Nov 2012
81
2
8
35
sevenjeak.altervista.org
Non saprei che dal titolo si capisce il mio problema, ma io, per provarlo a risolvere ho fatto un mio codice di prova, e facendo delle ricerche su internet.

In poche parole in mio problema è che: avendo un form con un panello a 2 righe, ogni riga contiene un JTextPane, avvio l'applicazione è si seleziona ( focus ) il JTextPane alla prima riga, io vorrei, che all'avvio della mia applicazione il focus andasse al JTextPane della seconda riga, ansi che in quella della prima riga, non so se mi spiego.

Ho già provato utilizzando i metodi requestFocus() e requestFocusInWindow(), ma niente, voi sapete come fare?
 

Slyfer

Utente Attivo
4 Dic 2010
65
21
0
Ciao,

ci puoi postare il tuo codice?

Secondo me il problema sta nel momento in cui chiedi il focus, mi spiego.

Il focus viene chiesto quando la finestra viene visualizzata, se tu se chiedi il focus del secondo elemento prima che la finestra venga visualizzata, la richiesta è inefficace.

ciao
 

Slyfer

Utente Attivo
4 Dic 2010
65
21
0
Come sospettavo il problema sta nel quando richiedere il focus, se lo fai prima del setVisible non funziona; sotto il codice (puoi fare tu delle prove).

ciao

Codice:
import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JTextField;

public class DemoGui extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	// Class Declarations
	JTextField jtfText1, jtfText2;

	// Constructor
	public DemoGui() {
		super("TextField Test Demo");
		Container container = getContentPane();
		container.setLayout(new FlowLayout());
		jtfText1 = new JTextField(10);
		jtfText2 = new JTextField(10);
		container.add(jtfText1);
		container.add(jtfText2);

		setSize(325, 100);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// questo non funziona
		// jtfText2.requestFocusInWindow();

		setVisible(true);

		// questo funziona
		jtfText2.requestFocusInWindow();
	}

	// Main Program that starts Execution
	public static void main(String args[]) {
		new DemoGui();
	}
}
 

Sevenjeak

Utente Attivo
27 Nov 2012
81
2
8
35
sevenjeak.altervista.org
Si, infatti il problema era che richiamavo il requestFocus() prima del setVisible(true) ( prima di rendere visibile il JFrame ), grazie per l'aiuto.

Ansi, un'ultima domanda, ho letto su internet, ma non ho provato, che in alcuni casi il requestFocusInWindows() sembra non funzionare, per questo consigliano il requestFocus(), a te risulta questo? in poche parole, quale metodo è consigliabile utilizzare tra i due?
 
Ultima modifica:

Slyfer

Utente Attivo
4 Dic 2010
65
21
0
Ciao, dalla documentazione http://docs.oracle.com/javase/6/docs/api/java/awt/Component.html#requestFocus()

Leggo che è consigliabile usare requestFocusInWindow perchè il requestFocus non è platform indipendent, il requestFocusInWindow potrebbe fallire (infatti restitusce un booleano).

Io non ho mai avuto problemi con requestFocusInWindow, ma se vuoi essere sicuro puoi fare

Codice:
if(!c.requestFocusInWindow()){
  c.requestFocus();
}

ciao
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Piacere di far parte di questa community Presentati al Forum 0
D Devo far funzionare un form di contatti PHP 4
J Far partire Angular Javascript 1
MarcoGrazia Se non sai se riceverai da GET o da POST, puoi verificarlo e far scegliere allo script. Snippet PHP 0
J Far comparire e scomparire un div con un select Javascript 1
T Far sparire dalla pagina div che saranno inseriti successivamente jQuery 0
Shyson Far apparire le l'icona Back To Top in fondo jQuery 8
D [Java] far partire JProgressBar all'apertura di un JFrame Java 1
Monital [PHP]Far riconoscere stringa o numerico epr creazione campo tabella PHP 6
Q Problema su come far aggiornare i campi su un database Mysql PHP 17
W [PHP] Come far funzionare un form di selezione PHP 12
otto9due Al Click su optgroup di un select, far comparire le option annidate jQuery 2
M Riadattamento funzioni per far scomparire un menu. jQuery 4
momeraths [HTML] Come non far scaricare video HTML e CSS 1
trattorino [Javascript] FAR sparire campo dopo top caratteri Javascript 2
T [Javascript] Far partire script al raggiungimento del div/section Javascript 0
M [PHP] Far rimanere biffata checkbox dopo aggiornamento pagina PHP 24
M [Javascript] far scomparire il menu al click Javascript 0
Bryan [PHP] Far mostrare tutte le tabelle contenenti in un database PHP 2
maurogiarrizzo È un piacere far parte di questo sito Presentati al Forum 1
C [PHP] DEVO FAR SPUNTARE SOLO LE CONSONANTI DI UNA STRINGA PHP 1
R Come faccio a far tradurre un mio video su Youtube? Social Media Marketing 2
SimooRu [PHP] Non riesco a far passare i dati con i form PHP 4
D script per far funzionare l'animazione Javascript 4
D script per far funzionare l'animazione Presentati al Forum 1
G Ciclo if php per far comparire un pulsante solo nel caso in cui una variabile sia 0 PHP 2
M Creazione codice html per far prelevare un banner HTML e CSS 3
M Far partire una funzione/codice php con javascript Javascript 1
S Far partire in automatico una slide all'apertura della pagina Javascript 0
U Far partire una funzione JavaScript premendo bottone in html Javascript 13
Mr. Alex D. Come far apparire un testo preimpostato in una casella di un form di uno script php? PHP 1
S Se voglio far scorrere le immagini dello sfondo di una pagina (oviamente html) come faccio? HTML e CSS 1
S Come faccio a far scorrere delle immagini come sfondo di una pagina? Discussioni Varie 1
I Far conoscere un sito SEO e Posizionamento 4
Shyson Far apparire o scomparire div jQuery 1
P far apparire immagine sotto testo con rollover Javascript 2
D Come far ripartire una gif quando si rivisita la pagina dello slideshow WordPress 1
K Far scorrere il menu dal fondo al top della pagina HTML e CSS 6
P Codice per far aprire un <div> al click di un immagine? HTML e CSS 0
piccino Far pubblicare un solo articolo WordPress 0
C Far apparire segno + PHP 1
D cliccare sul tasto per far comparire una scritta tipo PHP 0
G Come far passare un valore attraverso il metodo POST utiliazzando PHP a jQuery PHP 4
S Far scrivere un testo ad un utente registrato..... PHP 3
L Come far commentare/scrivere agli altri utenti?? Windows e Software 10
L Far commentare gli altri utenti...come fare?? HTML e CSS 1
F far apparire in automatico tutti gli ultimi post di facebook nella propria home page HTML e CSS 4
I come fare a far comparire il mio sito nelle ricerche?? SEO e Posizionamento 3
michelep [DISCUTIAMO]Far dialogare la nostra app con un web service tramite WSDL e SOAP Sviluppo app per Android 0
L Far apparire/scomparire un sottomenù al click jQuery 1

Discussioni simili