精华内容
下载资源
问答
  • Java文本框监听回车(KeyEvent事件)

    千次阅读 多人点赞 2019-07-19 15:09:32
    JTextArea textArea = new JTextArea(); textArea.addKeyListener(new KeyAdapter() { @Override public void keyTyped(KeyEvent e) { if((char)e.getKeyChar()==KeyEvent.VK_ENTER) { System.out.println("E...
    JTextArea textArea = new JTextArea();
    textArea.addKeyListener(new KeyAdapter() {
    	@Override
    	public void keyTyped(KeyEvent e) {
    		if((char)e.getKeyChar()==KeyEvent.VK_ENTER) {
    			System.out.println("ENTER");
    		}
    	}
    });
    
    展开全文
  • 折腾了很久,终于把登入界面的键盘监听加上了,内容很简单。其实想到的话也挺简单的,毕竟可以从鼠标监听事件推测过来。假设我们是如下的登入界面:我们需要对文本框进行监听,而不是对整个JFrame对象进行监听,所以...

    折腾了很久,终于把登入界面的键盘监听加上了,内容很简单。其实想到的话也挺简单的,毕竟可以从鼠标监听事件推测过来。

    假设我们是如下的登入界面:

    803f936a0fe70da77f81d6327d2d7910.png

    我们需要对文本框进行监听,而不是对整个JFrame对象进行监听,所以代码是这样的(其他部分代码可以看看我以前的博客http://blog..net/thehide/article/details/49537925):

    KeyListener key_Listener = new KeyListener()

    {

    public void keyTyped(KeyEvent e) {}

    public void keyReleased(KeyEvent e){}

    public void keyPressed(KeyEvent e){

    if(e.getKeyChar() == KeyEvent.VK_ENTER )

    {

    //可以写你的登入程序了

    }

    }

    };

    JTextField f1 = new JTextField(18);

    JPasswordField f2 = new JPasswordField(18);

    f1.addKeyListener(key_Listener);

    f2.addKeyListener(key_Listener);

    按回车就可以实现登入了。

    下面还有就是那种QQ消息,按  ctrl+回车  进行发送怎么写呢?很简单,看下面的语句吧,很快就可以类推出

    KeyListener key_Listener = new KeyListener()

    {

    public void keyTyped(KeyEvent e) {}

    public void keyReleased(KeyEvent e){}

    public void keyPressed(KeyEvent e){

    if(e.getKeyChar() == KeyEvent.VK_ENTER && e.isControlDown() )

    {

    //可以写你的登入程序了

    }

    }

    };

    展开全文
  • 今天遇到个需求,需要 EditText控件监听软键盘的回车按键,将用户写下的多行文本提交到服务器。一开始以为是个简单的要求,不过由于对EditText内部机制的不了解,导致比预期花多了不少时间去完成,特此记录一下。...

    今天遇到个需求,需要 EditText控件监听软键盘的回车按键,将用户写下的多行文本提交到服务器。

    一开始以为是个简单的要求,不过由于对EditText内部机制的不了解,导致比预期花多了不少时间去完成,特此记录一下。

    如果是对EditText内部机制不熟悉的人的话,一开始应该会写出类似我们下面的代码:

    android:id="@+id/editText"

    android:layout_width="match_parent"

    android:layout_height="120dp"

    android:background="@drawable/input_box"

    android:gravity="top|start"

    android:imeOptions="actionDone"

    android:padding="8dp" />

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    EditText editText = (EditText) findViewById(R.id.editText);

    editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {

    @Override

    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

    if (actionId == EditorInfo.IME_ACTION_DONE) {

    Toast.makeText(MainActivity.this, "Commit!", Toast.LENGTH_SHORT).show();

    return true;

    }

    return false;

    }

    });

    }

    然而当我们运行上面的代码,输入一大串东西后就会发现:

    701fb57269d0

    image.png

    在xml设置的android:imeOptions="actionDone"怎么没有起到作用?怎么软键盘的回车按键还是个换行符号的?

    通过查询各种资料,要让EditText的imeOptions配置生效就必须设置下面两个属性中的一个:

    android:singleLine="true"

    android:inputType="text"

    只要你设置了上面的任意一个(inputType属性不一定是设置text类型的,不过也不是全部的inputType类型都可以,具体的请自己去尝试),都可以让imeOptions配置生效和完成软键盘的回车键监听。不过估计你也察觉到了,上面两个属性,只要有一个在xml里面设置了,那么EditText就失去换行的作用了!!!

    解决的方法

    由于需求是多行输入,无论是android:singleLine="true"还是android:inputType="text"都限制了只能单行,那么有什么方法可以突破text类型的单行限制吗?当然是有的,EditText继承TextView,查看下TextView的setSingleLine方法可以看到一个applySingleLine方法,里面可以看到一些有趣的代码:

    701fb57269d0

    image.png

    setMaxLines方法大家应该偶读很熟悉了,setHorizontallyScrolling方法还是第一次见到,点进去看下注解:

    701fb57269d0

    image.png

    好的,这样子大概就知道了这个方法是设置文本能否超过View的宽度,如果是false,那么文本宽度最多只能是View的宽度。

    看到这里,笔者第一时间在xml里面做了下面的设置:

    android:id="@+id/editText"

    android:layout_width="match_parent"

    android:layout_height="120dp"

    android:background="@drawable/input_box"

    android:gravity="top|start"

    android:imeOptions="actionDone"

    android:singleLine="true"

    android:maxLines="50"

    android:scrollHorizontally="false"

    android:padding="8dp" />

    结果是不起作用的,猜测应该是TextView在初始化属性那边将android:singleLine属性放在了后面处理,那么在Java代码里面做处理会怎么样:

    android:id="@+id/editText"

    android:layout_width="match_parent"

    android:layout_height="120dp"

    android:background="@drawable/input_box"

    android:gravity="top|start"

    android:imeOptions="actionDone"

    android:singleLine="true"

    android:padding="8dp" />

    EditText editText = (EditText) findViewById(R.id.editText);

    editText.setHorizontallyScrolling(false);

    editText.setMaxLines(Integer.MAX_VALUE);

    运行看下代码:

    701fb57269d0

    show.gif

    ok,问题解决了。

    展开全文
  • java 监听控制台输入

    2021-02-12 22:47:52
    packagecom.idealisan....importjava.util.HashMap;importjava.util.Scanner;public classConsoleListener {HashMap answers = new HashMap();Scanner scanner;Action defaultAction;/*** Add an action for a me...

    packagecom.idealisan.cores;importjava.util.HashMap;importjava.util.Scanner;public classConsoleListener {

    HashMap answers = new HashMap();

    Scanner scanner;

    Action defaultAction;/*** Add an action for a message.

    *@parammessage A string trimed. Ignore case. It has no inner space sequence of two spaces or more.

    * Example:"close connection"

    *@paramaction The method action.act() will be called when scanner get the message.*/

    public voidaddAction(String message, Action action) {

    answers.put(message.toLowerCase(), action);

    }/***

    *@paramscanner Usually new Scanner(System.in).

    * Will not be closed after listening.

    *@paramdefaultAction The defaultAction.act() method will be called if an action is not added for a message.*/

    publicConsoleListener(Scanner scanner, Action defaultAction) {this.scanner =scanner;this.defaultAction =defaultAction;if (scanner == null || defaultAction == null) {throw new NullPointerException("null params for ConsoleListener");

    }

    }public voidremoveAction(String message, Action action) {

    answers.remove(message, action);

    }publicAction replaceAction(String message, Action action) {returnanswers.replace(message, action);

    }public voidlistenInNewThread() {

    Thread t= newThread() {public voidrun() {

    listen();

    }

    };

    t.start();

    }/*** Use listenInNewThread() instead.

    * Listen to console input in current thread. It blocks the thread.*/

    public voidlisten() {while (true) {

    String line=scanner.nextLine();

    String msg= line.replaceAll("[\\s]+", " ");

    msg=msg.trim().toLowerCase();

    Action action=answers.get(msg);if (action == null) {

    action=defaultAction;

    }

    action.act(line);

    }

    }public static interfaceAction {public voidact(String msg);

    }

    }

    展开全文
  • Java SWT事件

    2021-04-22 09:27:44
    监听器就是监听事件什么时候发生的,用来控制事件发生的具体动作。(个人见解)事件产生处的SWT组件称为事件源,(官方)对事件作出具体动作称为监听器(Listener)。监听器负责监听组件上的事件,并对发生的事件进行处理...
  • 需求 项目有个回车登录功能,在此...我们应该监听当前登录页面的所有回车操作。 $("body").keydown(function () { var yzmStatus = $("#yzmLoginDiv").css("display"); if(event.keyCode == '13'){ if(yzmSta...
  • 可以实现回车触发按钮,或者是在文本输入框的时候,回车触发一个事件。使用的时候,只要将SwingUtils .enterPressesWhenFocused(JButton)这样就可以实现回车时候,触发按钮。另外文本输入框回车触发事件则是:...
  • I want to know how to see get the printing details which any other application (Word, Excel, PDF readers) sent to the printer in a Java application. That means, the user send various types of documen....
  • JAVAGUI实现回车登录

    2020-07-01 23:04:33
    添加KeyListener监听器时千万注意,不仅要将监听器对象加入到Button,还要加到需要监听的用户名、密码等文本框中。 KeyListener keyListener=new KeyListener() { @Override public void keyTyped...
  • 详谈Java中的事件监听机制发布于 2020-3-21|复制链接下面小妖就为大家带来一篇详谈Java中的事件监听机制。小妖觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小妖过来看看吧鼠标事件监听机制的三个...
  • Java中TextField控件的回车事件

    千次阅读 2013-07-05 11:28:57
    今天在 BOS开发中,给单据叙事簿上的条件文本框增加回车自动提交的事件,发现如下监听器都不起作用: kDTextField1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0) { ...
  • java登录按回车事件

    2020-07-08 08:56:01
    当输入账户或密码按下回车就会触发登录按钮 protected void addAction(){ KeyListener keyListener = new KeyListener() { @Override public void keyTyped(KeyEvent e) { } @Override public void ...
  • 事件监听方法: addActionListener 用来捕捉类似输入框组件对象上的键盘回车动作; 用来捕捉类似按钮组件对象上的鼠标点击动作; addMouseListener 用来捕获事件源对象上的鼠标进入、离开、按下、释放以及点击。 ...
  • Java中的事件监听机制

    2021-03-06 16:42:45
    Java语言中所有的容器组件和元素组件都是事件监听中的事件源对象。Java中根据事件的动作来区分不同的事件源对象,动作发生在哪个组件上,那么该组件就是事件源对象2.事件监听方法:addMouseListener(MouseListener...
  • JAVA GUI 事件监听事件 详解 和 案例.

    千次阅读 2021-03-22 14:41:47
    GUI(图形用户界面)Graphical User Interface(图形用户接口)用图形的 方式, 来显示 计算机操作的 界面, ...需要记忆一些常用的命令, 操作不直观.Java 为 GUI 提供的 对象 都存在 java.awt 和 javax.swing 两个包中...
  • fildder监听java请求

    2021-03-14 15:03:11
    fildder默认是无法监听java发出的请求的,要监听需要添加一些配置,以idea为例写一下设置的过程:1. 导出fiddler证书fiddler->tools->telerik fildder options->https点击Actions->Export Root ...
  • importjava.awt.Graphics;importjava.awt.Image;importjava.awt.event.KeyAdapter;importjava.awt.event.KeyEvent;importcn.bjsxt.ut...麻烦各位大侠解救一下!!package cn.bjsxt.plane;impo...
  • Android Studio监听回车事件,捕获手机和扫描枪的Enter键的点击事件 package com.example.mynewtest; import android.content.Context; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity...
  • 您可能感兴趣的文章:利用java监听器实现在线人数统计浅析JAVA中过滤器、监听器、拦截器的区别Java添加事件监听的四种方法代码实例java实现监听u盘示例分享java开发gui教程之jframe监听窗体大小变化事件和jframe创建...
  • Java 输入框事件监听教程.

    千次阅读 2020-04-18 17:34:44
    1.创建一个新的Frame,这里使用新建类 My输入框事件监听Frame 实现,(记得继承Frame) 如何新建一个Frame 类教程点击跳转 2.新建一个 TextField 文本域并添加至 1步骤新建的窗口 TextField textField = new ...
  • 而在java中接口作用类似,定义一个具有特定特点的接口,在合适的地方引用它,执行所对应的功能,这样能够实现代码的分离。下面我们来看一下接口的定义:关键字:interface格式:public interface 接口名{ ...
  • java中接口和事件监听器的深入理解

    千次阅读 2021-03-17 21:46:13
    而在java中接口作用类似,定义一个具有特定特点的接口,在合适的地方引用它,执行所对应的功能,这样能够实现代码的分离。下面我们来看一下接口的定义:关键字:interface格式:public interface 接口名...
  • 本文实例讲述了java GUI编程之监听操作。分享给大家供大家参考,具体如下:当点击Frame中的component组件时,会产生相应的效果,但是相应的其必须进行监听,确定是那个对象,那种操作,但是如果用cup进行主动的监听...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,824
精华内容 7,929
关键字:

java监听回车

java 订阅