dans le code ci dessous,si je le lance, j ai le curseur qui apparait directement dans le jtextfield;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class principal {
public static void main(String[] args) {
JTextField mot=new JTextField();
JPanel panel= new JPanel();
JLabel label = new JLabel("aa", JLabel.CENTER);
Font f14=new Font("Arial", Font.BOLD, 20);
label.setFont(f14);
JFrame pan = new JFrame("saisie rapide");
pan.setAlwaysOnTop( true );//pour que la fenetre s affiche devant le reste
pan.setContentPane(panel);
pan.setSize(580, 400);// taille de la fenetre
pan.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pan.setLocationRelativeTo(null);
Font gt=new Font("Arial", Font.BOLD, 20);
label.setBounds(20,200, 50, 60);
mot.setFont(gt);//caractristiques case texte entree
mot.setBounds(250,200, 100,60);
panel.setLayout(null);
panel.add(label);
panel.add(mot);
pan.setVisible(true);
}
}
par contre si je rajoute un bouton avec cet autre code ,il faut cliquer sur le j textfield pour avoir le curseur;or moi je voudrais pouvoir rentrer une valeur directement sans cliquer
package textautosaisieforum;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class principal {
public static void main(String[] args) {
JTextField mot=new JTextField();
JPanel panel= new JPanel();
JButton bouton1 = new JButton("ici");
Font f=new Font("Arial", Font.BOLD, 20);
bouton1.setFont(f);
bouton1.setBackground(Color.gray);
bouton1.setForeground(Color.black);
bouton1.setBounds(15, 80, 80, 40); //positionnement du bouton en partant du coin gauche x horiz y verti v long ww larg
panel.add(bouton1);
JLabel label = new JLabel("aa", JLabel.CENTER);
Font f14=new Font("Arial", Font.BOLD, 20);
label.setFont(f14);
JFrame pan = new JFrame("saisie rapide");
pan.setAlwaysOnTop( true );//pour que la fenetre s affiche devant le reste
pan.setContentPane(panel);
pan.setSize(580, 400);// taille de la fenetre
pan.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pan.setLocationRelativeTo(null);
Font gt=new Font("Arial", Font.BOLD, 20);
label.setBounds(20,200, 50, 60);
mot.setFont(gt);//caractristiques case texte entree
mot.setBounds(250,200, 100,60);
panel.setLayout(null);
panel.add(label);
panel.add(mot);
pan.setVisible(true);
}
}
merci PXL,mais j avais deja essayé sans succes,peut etre car je m en sert pas comme il faut;si c est le cas ,ou est mon erreur dans le code ci dessous
package textautosaisieforum;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class principal {
public static void main(String[] args) {
JTextField mot=new JTextField();
JPanel panel= new JPanel();
JButton bouton1 = new JButton("ici");
Font f=new Font("Arial", Font.BOLD, 20);
bouton1.setFont(f);
bouton1.setBackground(Color.gray);
bouton1.setForeground(Color.black);
bouton1.setBounds(15, 80, 80, 40); //positionnement du bouton en partant du coin gauche x horiz y verti v long ww larg
panel.add(bouton1);
JLabel label = new JLabel("aa", JLabel.CENTER);
Font f14=new Font("Arial", Font.BOLD, 20);
label.setFont(f14);
JFrame pan = new JFrame("saisie rapide");
pan.setAlwaysOnTop( true );//pour que la fenetre s affiche devant le reste
pan.setContentPane(panel);
pan.setSize(580, 400);// taille de la fenetre
pan.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pan.setLocationRelativeTo(null);
Font gt=new Font("Arial", Font.BOLD, 20);
label.setBounds(20,200, 50, 60);
mot.setFont(gt);//caractristiques case texte entree
mot.setBounds(250,200, 100,60);
panel.setLayout(null);
panel.add(label);
panel.add(mot);
mot.requestFocus();//c est pas mieux,mais est ce que je l utilise mal
// mot. requestFocusInWindow();//j ai aussi essayé ces 3 lignes a tour de role sans succes
// mot.grabFocus();
// mot.setFocusable(true);
pan.setVisible(true);
}
}
et en plus ,pourquoi il y a besoin de faire un truc comme ca quand je rajoute un bouton ,alors que sans,ca marche
bon,ca marche quand je crée la fenetre,mais quand je rajoute un actionlistener sur le bouton 1,mon cursueur disparait,surement parce qu il reprend le focus;j ai essayé de palcer la reprise du focus par letextfield un peu partout,y compris dans l action listener,ca ne change plus
package textautosaisieforum;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class principal {
public static void main(String[] args) {
JTextField mot=new JTextField();
JPanel panel= new JPanel();
JButton bouton1 = new JButton("ici");
Font f=new Font("Arial", Font.BOLD, 20);
bouton1.setFont(f);
bouton1.setBackground(Color.gray);
bouton1.setForeground(Color.black);
bouton1.setBounds(15, 80, 80, 40); //positionnement du bouton en partant du coin gauche x horiz y verti v long ww larg
panel.add(bouton1);
bouton1.addActionListener(new ActionListener() {//si je rajoute action listener sur le bouton
//je reperd le curseur
public void actionPerformed(ActionEvent ae) {
}
});
JLabel label = new JLabel("aa", JLabel.CENTER);
Font f14=new Font("Arial", Font.BOLD, 20);
label.setFont(f14);
JFrame pan = new JFrame("saisie rapide");
pan.setAlwaysOnTop( true );//pour que la fenetre s affiche devant le reste
pan.setContentPane(panel);
pan.setSize(580, 400);// taille de la fenetre
pan.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pan.setLocationRelativeTo(null);
Font gt=new Font("Arial", Font.BOLD, 20);
label.setBounds(20,200, 50, 60);
mot.setFont(gt);//caractristiques case texte entree
mot.setBounds(250,200, 100,60);
panel.setLayout(null);
panel.add(label);
panel.add(mot);
pan.addWindowListener((WindowListener) new WindowAdapter() {//avec ca j ai le cursueur a la creation de la fenetre
//mais quand on clic sur le bouton 1,le curseur disparait
public void windowOpened(WindowEvent e){
mot.requestFocus();
}
});
pan.setVisible(true);
}
}
Ben oui quand on clic sur quelque chose focusable ca prend le focus, c'est le comportement par défaut, si tu veux pas, soit tu met les éléments comme non focusable, soit tu rediriges le focus quand un event de prise de focus est détecte.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl
PXL Le retro gaming facile Thread sur le forum: https://openclassrooms.com/forum/sujet/retro-pxl