这是以前给别人做的例子,requestFocus();要加在frame.setVisible(true);的后面才能生效import javax.swing.*;public class Test{
JFrame frame;
JPanel pane;
JTextField t1, t2, t3;
public Test() {
t1 = new JTextField(20);
t2 = new JTextField(20);
t3 = new JTextField(20);
frame = new JFrame("");
pane = new JPanel();
frame.getContentPane().add(pane);
pane.add(t1);
pane.add(t2);
pane.add(t3);
frame.setSize(300, 200);
frame.setVisible(true);
//t1.requestFocus();//第一个得到光标的焦点,这个是默认的
//t2.requestFocus();//第二个得到光标的焦点
t3.requestFocus(); //第三个得到光标的焦点 } public static void main(String[] args) {
Test test = new Test();
}
}
<------ 树欲静而风不止 ------>
JFrame frame;
JPanel pane;
JTextField t1, t2, t3;
public Test() {
t1 = new JTextField(20);
t2 = new JTextField(20);
t3 = new JTextField(20);
frame = new JFrame("");
pane = new JPanel();
frame.getContentPane().add(pane);
pane.add(t1);
pane.add(t2);
pane.add(t3);
frame.setSize(300, 200);
frame.setVisible(true);
//t1.requestFocus();//第一个得到光标的焦点,这个是默认的
//t2.requestFocus();//第二个得到光标的焦点
t3.requestFocus(); //第三个得到光标的焦点 } public static void main(String[] args) {
Test test = new Test();
}
}
<------ 树欲静而风不止 ------>
解决方案 »
- 哈哈~~ 10分钟以后出发去爬“香山”~~
- 讨论下:JAVA实现打印的最优方法是什么?
- 请各帮解决一个怪问题
- 如果得到JPanel的大小
- 請高手幫忙﹕在java中調用oracle存儲過程出錯
- 棘手的问题:char-->byte
- 我的JAVA JDK1.3.1_05 好像找不到CLASS,怎么解决?
- 怎样将一个label设置在frame的右下角
- 请问scjp考试中多选题选少了答案有没有分?
- 哪里有DOMINO的解决及安装实例下载?
- 关于Jni问题已经解决,回答过的兄弟门接分啊!!!!!!!!!!给足200分,说话算话吧!!哈哈
- ResultSet中的absolute(int k)不能用,请高人指点.散分.100
楼上所说
第二个问题:
回车后,你是想要光标去下一行吗?如果是,那可不行,TextField是单行文本框,多行文本用TextArea
import java.awt.event.*;public class Test{
JFrame frame;
JPanel pane;
JTextField t1, t2, t3;
public Test() {
t1 = new JTextField(20);
t2 = new JTextField(20);
t3 = new JTextField(20);
t1.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent keyEvent) {
if((int)keyEvent.getKeyChar()==10){
t2.requestFocus();
}
}
public void keyPressed(KeyEvent keyEvent) {}
public void keyReleased(KeyEvent keyEvent) {}
});
t2.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent keyEvent) {
if((int)keyEvent.getKeyChar()==10){
t3.requestFocus();
}
}
public void keyPressed(KeyEvent keyEvent) {}
public void keyReleased(KeyEvent keyEvent) {}
});
frame = new JFrame("");
pane = new JPanel();
frame.getContentPane().add(pane);
pane.add(t1);
pane.add(t2);
pane.add(t3);
frame.setSize(300, 200);
frame.setVisible(true);
t1.requestFocus();//第一个得到光标的焦点,这个是默认的
//t2.requestFocus();//第二个得到光标的焦点
//t3.requestFocus(); //第三个得到光标的焦点
} public static void main(String[] args) {
Test test = new Test();
}
}<------ 树欲静而风不止 ------>
不过还可以在请教点问题吗?
如果不是固定的指定是t1,t2,t3得光标,而是想实现让光标跳转到一个可以得光标的控件上,能不能实现呢?比如做专门负责光标跳转的小函数?不好意思。
import javax.swing.*;
import java.awt.event.*;
import java.awt.Component;public class Test{
JFrame frame;
JPanel pane;
JTextField t1, t2, t3;
JButton button;
public Test() {
button = new JButton("确定");
t1 = new JTextField(20);
t2 = new JTextField(20);
t3 = new JTextField(20);
t1.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent keyEvent) {
if((int)keyEvent.getKeyChar()==10){
setCFocus(t2);
}
}
public void keyPressed(KeyEvent keyEvent) {}
public void keyReleased(KeyEvent keyEvent) {}
});
t2.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent keyEvent) {
if((int)keyEvent.getKeyChar()==10){
setCFocus(t3);
}
}
public void keyPressed(KeyEvent keyEvent) {}
public void keyReleased(KeyEvent keyEvent) {}
});
t3.addKeyListener(new KeyListener() {
public void keyTyped(KeyEvent keyEvent) {
if((int)keyEvent.getKeyChar()==10){
setCFocus(button);
}
}
public void keyPressed(KeyEvent keyEvent) {}
public void keyReleased(KeyEvent keyEvent) {}
});
frame = new JFrame("");
pane = new JPanel();
frame.getContentPane().add(pane);
pane.add(t1);
pane.add(t2);
pane.add(t3);
pane.add(button);
frame.setSize(300, 200);
frame.setVisible(true);
t1.requestFocus();//第一个得到光标的焦点,这个是默认的
//t2.requestFocus();//第二个得到光标的焦点
//t3.requestFocus(); //第三个得到光标的焦点
} public void setCFocus(Component c){
c.requestFocus();
} public static void main(String[] args) {
Test test = new Test();
}
}<------ 树欲静而风不止 ------>
keyEvent. getComponent().transferFocus();
好想也还可以的样子。
呵呵。不知道这样做是不是会有什么不好呢?