Problème de focus - Java - Programmation
Marsh Posté le 30-04-2004 à 22:55:52
je crois que tu le fait dans le désordre:
tu ajoute tes composants ENSUITE tu affiche ta frame
une fois affiché fait appel game.requestFocus();
normalement ca doit etre bon
Marsh Posté le 30-04-2004 à 23:27:01
On m'a dit qu'il fallait mettre un setFocusable() quelque part car par défaut les JPanel ne peuvent pas prendre le focus. J'ai fait comme ça et ça a marché, mais merci tout de même pour ta réponse
Marsh Posté le 04-08-2004 à 01:18:30
Moi j'ai un autre problème de focus avec les boites de dialogues modale que je ne comprends pas.
Voici le code de Test que j'ai :
Code :
|
Le but de cette classe et de mettre le focus sur le bouton Annuler.
Pour pouvoir mettre le focus sur un composant il faut que celui si soit visible, c'est pourquoi le code pour mettre le bouton Annuler est après la ligne jd.setVisible (true). Le problème c'est que si on fait ca sur une boite de dialogue modale, tout ce qui suit est bloqué tant qu'on a pas fait appel à dispose () ou hide ()... La ligne qui affiche soit request possible ou request impossible s'affiche qu'apres l'appel à action perfermed...
Donc comment faire pour afficher la boite de dialogue modale pour mettre le focus sur le bouton Annuler ??????
J'ai essayé de créer une boite non modale, de la mettre visible, de mettre le focus sur le bon bouton et apres faire appel à setModal (), mais la boite de dialogue reste non modale...
J'ai essayé plusieurs choses, je n'ai pas trouvé de solution, quelqu'un peut m'aider ???
Merci
Marsh Posté le 28-04-2004 à 19:15:23
Bonjour, quand je lance ma classe Tetris (ci-dessous) je n'arrive pas à donner le focus à mon JPanel game... Comment faire ?
Ca marchait avant quand je travaillais sur une applet mais depuis que j'essaie de la transformer en application, marche plus...
import javax.swing.JFrame;
public class Tetris
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.show();
frame.resize(800, 600);
frame.validate();
Game game = new Game();
frame.getContentPane().add(game);
game.requestFocus(); // J'essaie les deux
game.requestFocusInWindow(); // mais ca marche pas...
}
}
import javax.swing.JPanel;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
class Game extends JPanel implements KeyListener
{
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
System.out.println(key);
}
public void keyReleased(KeyEvent event) {;}
public void keyTyped(KeyEvent event) {;}
}