JTextField添加释放键盘事件
我想做一个学号的查询工能当每次输入一个数字的时候就查询一次,(模糊查询)也就是说每次松开键盘的时候就激活下查询按钮抱歉1L的兄弟,没看懂啊。。我这么说吧。我有一个text...
我想做一个学号的查询工能
当每次输入一个数字的时候就查询一次,(模糊查询)
也就是说每次松开键盘的时候就激活下查询按钮
抱歉1L的兄弟,没看懂啊。。我这么说吧。我有一个textfield。
还有个select按钮。这个select按钮就是根数gettextfield的到的值查询数据库的。
我现在就像让textfield每输入一个字的时候调用一下select.doClik();就OK了
不用那么繁琐。我尝试过用
keyReleased(KeyEvent e)释放某个键时调用此方法。
但是没成功。可能是我写错了 展开
当每次输入一个数字的时候就查询一次,(模糊查询)
也就是说每次松开键盘的时候就激活下查询按钮
抱歉1L的兄弟,没看懂啊。。我这么说吧。我有一个textfield。
还有个select按钮。这个select按钮就是根数gettextfield的到的值查询数据库的。
我现在就像让textfield每输入一个字的时候调用一下select.doClik();就OK了
不用那么繁琐。我尝试过用
keyReleased(KeyEvent e)释放某个键时调用此方法。
但是没成功。可能是我写错了 展开
4个回答
展开全部
帮你写了两种不同方法,不同风格的,看你喜欢那个就用那个吧,呵呵
/***************1******************
* window风格
*********************************/
package com.test;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.*;
import javax.swing.JLabel;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
public class Frame1 extends JFrame {
JTextField txt2 = new JTextField();
JTextField txt1 = new JTextField();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
public Frame1() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
getContentPane().setLayout(null);
setSize(400,400);
txt2.setText("");
txt2.setBounds(new Rectangle(93, 153, 276, 42));
jLabel1.setText("请输入字符");
jLabel1.setBounds(new Rectangle(38, 44, 322, 30));
jLabel2.setText("输出");
jLabel2.setBounds(new Rectangle(17, 151, 66, 42));
jLabel3.setText("输入");
jLabel3.setBounds(new Rectangle(17, 86, 66, 42));
txt1.addKeyListener(new Frame1_txt1_keyAdapter(this));
this.getContentPane().add(txt2, null);
this.getContentPane().add(txt1);
this.getContentPane().add(jLabel1);
this.getContentPane().add(jLabel3);
this.getContentPane().add(jLabel2);
txt1.setText("");
txt1.setBounds(new Rectangle(93, 85, 277, 42));
}
//键盘的:keyReleased事件释放某键时触发此事件详见API KeyAdapter类
public void txt1_keyReleased(KeyEvent e) {
txt2.setText(txt1.getText().trim());
}
public static void main(String[] arges){
(new Frame1()).show();
}
}
class Frame1_txt1_keyAdapter extends KeyAdapter {
private Frame1 adaptee;
Frame1_txt1_keyAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void keyReleased(KeyEvent e) {
adaptee.txt1_keyReleased(e);
}
}
/***************1******************
* java风格
*********************************/
package com.test;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Frame1 extends JFrame implements KeyListener{
JTextField input = new JTextField("",10);
JTextField output = new JTextField("",10);
JLabel titleTip = new JLabel(" 请在输入框中输入,效果可在显示框中显示");
JLabel inputTip= new JLabel("输入框");
JLabel outputTip = new JLabel("显示框");
JPanel Npanel = new JPanel(new FlowLayout());
JPanel Cpanel = new JPanel(new GridLayout(2,2));
public void initGUI() {
this.Npanel.add(titleTip);
this.Cpanel.add(inputTip);
this.Cpanel.add(input);
this.Cpanel.add(outputTip);
this.Cpanel.add(output);
this.setLayout(new FlowLayout());
this.add(Npanel);
this.add(Cpanel);
}
public void initAction() {
input.addKeyListener(this);
}
public Frame1() {
setTitle("KeyListener");
initGUI();
initAction();
setSize(250, 180);
setDefaultCloseOperation(2);
setUndecorated(true);
getRootPane().setWindowDecorationStyle(1);
setLocationRelativeTo(null);
setResizable(false);
setVisible(true);
}
public static void main(String[] arges){
new Frame1();
}
public void keyPressed(KeyEvent arg0) {
}
public void keyReleased(KeyEvent e) {
Object source=(Object)e.getSource();
if(source==input){
output.setText(input.getText().trim());
}
}
public void keyTyped(KeyEvent arg0) {
}
}
/***************1******************
* window风格
*********************************/
package com.test;
import javax.swing.JFrame;
import javax.swing.JTextField;
import java.awt.*;
import javax.swing.JLabel;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;
public class Frame1 extends JFrame {
JTextField txt2 = new JTextField();
JTextField txt1 = new JTextField();
JLabel jLabel1 = new JLabel();
JLabel jLabel2 = new JLabel();
JLabel jLabel3 = new JLabel();
public Frame1() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
}
private void jbInit() throws Exception {
getContentPane().setLayout(null);
setSize(400,400);
txt2.setText("");
txt2.setBounds(new Rectangle(93, 153, 276, 42));
jLabel1.setText("请输入字符");
jLabel1.setBounds(new Rectangle(38, 44, 322, 30));
jLabel2.setText("输出");
jLabel2.setBounds(new Rectangle(17, 151, 66, 42));
jLabel3.setText("输入");
jLabel3.setBounds(new Rectangle(17, 86, 66, 42));
txt1.addKeyListener(new Frame1_txt1_keyAdapter(this));
this.getContentPane().add(txt2, null);
this.getContentPane().add(txt1);
this.getContentPane().add(jLabel1);
this.getContentPane().add(jLabel3);
this.getContentPane().add(jLabel2);
txt1.setText("");
txt1.setBounds(new Rectangle(93, 85, 277, 42));
}
//键盘的:keyReleased事件释放某键时触发此事件详见API KeyAdapter类
public void txt1_keyReleased(KeyEvent e) {
txt2.setText(txt1.getText().trim());
}
public static void main(String[] arges){
(new Frame1()).show();
}
}
class Frame1_txt1_keyAdapter extends KeyAdapter {
private Frame1 adaptee;
Frame1_txt1_keyAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void keyReleased(KeyEvent e) {
adaptee.txt1_keyReleased(e);
}
}
/***************1******************
* java风格
*********************************/
package com.test;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Frame1 extends JFrame implements KeyListener{
JTextField input = new JTextField("",10);
JTextField output = new JTextField("",10);
JLabel titleTip = new JLabel(" 请在输入框中输入,效果可在显示框中显示");
JLabel inputTip= new JLabel("输入框");
JLabel outputTip = new JLabel("显示框");
JPanel Npanel = new JPanel(new FlowLayout());
JPanel Cpanel = new JPanel(new GridLayout(2,2));
public void initGUI() {
this.Npanel.add(titleTip);
this.Cpanel.add(inputTip);
this.Cpanel.add(input);
this.Cpanel.add(outputTip);
this.Cpanel.add(output);
this.setLayout(new FlowLayout());
this.add(Npanel);
this.add(Cpanel);
}
public void initAction() {
input.addKeyListener(this);
}
public Frame1() {
setTitle("KeyListener");
initGUI();
initAction();
setSize(250, 180);
setDefaultCloseOperation(2);
setUndecorated(true);
getRootPane().setWindowDecorationStyle(1);
setLocationRelativeTo(null);
setResizable(false);
setVisible(true);
}
public static void main(String[] arges){
new Frame1();
}
public void keyPressed(KeyEvent arg0) {
}
public void keyReleased(KeyEvent e) {
Object source=(Object)e.getSource();
if(source==input){
output.setText(input.getText().trim());
}
}
public void keyTyped(KeyEvent arg0) {
}
}
展开全部
添加一个键盘监听事件,并重写释放键盘的方法,在方法中调用select.doClik();就OK了。
如果需要具体代码,可以在线找我。
如果需要具体代码,可以在线找我。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你单击按钮的时候工作可正常?
可能是函数名拼错了之类的,仔细检查一下。
textfield.addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent e) {
select.doClick();
}
};);
可能是函数名拼错了之类的,仔细检查一下。
textfield.addKeyListener(new KeyAdapter(){
public void keyReleased(KeyEvent e) {
select.doClick();
}
};);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
JTextField 添加键盘事件监听
keyReleased(KeyEvent e){
//如果select能访问
select.doClik();
//或者在这里doClik()的功能拷贝到这里
}
keyReleased(KeyEvent e){
//如果select能访问
select.doClik();
//或者在这里doClik()的功能拷贝到这里
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询