#java #swing #cursor #focus #jtextfield
#java #swing #курсор #фокус #jtextfield
Вопрос:
Я хочу, чтобы курсор отображался в «поле» JTextField по умолчанию. В настоящее время я должен поместить курсор в поле, прежде чем он появится. Вот код.
class XYZ extends JFrame implements ActionListener {
JTextField box = new JTextField();
JButton again = new JButton("Restart");
JButton ext = new JButton("Exit");
XYZ() {
box.addActionListener(this);
again.addActionListener(this);
ext.addActionListener(this);
box.setPreferredSize(new Dimension(20,20));
box.setHorizontalAlignment(JTextField.CENTER)
JPanel s3 = new JPanel(new BorderLayout()); //This holds the 3 panels below
JPanel restart = new JPanel(new BorderLayout()); //this holds a button
JPanel leave = new JPanel(new BorderLayout()); //also holds a button
//The following holds a JLabel and the textfield
JPanel middle = new JPanel(new FlowLayout(FlowLayout.CENTER,20,0));
JLabel j2 = new JLabel("Enter your guess!");
middle.add(j2);
middle.add(box);
restart.add(again,BorderLayout.SOUTH);
leave.add(ext,BorderLayout.SOUTH);
//Adding the 3 panels to s3
s3.add(middle,BorderLayout.CENTER);
s3.add(restart,BorderLayout.WEST);
s3.add(leave,BorderLayout.EAST);
}
}
Ответ №1:
Вы можете просто запросить фокусировку текстового поля с помощью вызова requestFocusInWindow
. Просто вызовите это, как только будет виден фрейм, содержащий текстовое поле:
box.requestFocusInWindow();
Комментарии:
1. @Avi вы должны принять этот ответ, чтобы плакат получил оценку, и вопрос не остался без ответа. Счастливого кодирования!