JavaFX等待用户输入的文本,没有任何文本字段

标签 java javafx

我试图使用JavaFX(不是使用控制台)获取没有任何文本字段的用户输入文本,但我被代码困住了。基本上我想做的是,在登录页面期间,用户将通过按下 USB 中的按钮接收从 token USB 自动生成的随机 OTP 字符串,并且当表单处于 Activity 状态时,该字符串将自动随登录页面一起接收,而无需涉及的任何文本字段。

我现在可以提出的演示者代码如下:

public class LoginBoxPresenterFinal implements Initializable {

...
    public void initialize(URL arg0, ResourceBundle arg1) {
    ....
        Scanner reader = new Scanner(System.in);  
        String otp = reader.nextLine();
        System.out.println(otp);
}}

这段代码实际上是错误的,因为扫描仪只会接收 Eclipse 控制台中的输入,并且直到我在控制台中输入内容并按 Enter 按钮后才会显示登录页面。

感谢任何帮助。谢谢

最佳答案

先生,我可以帮助您。

Stage s = new Stage(StageStyle.DECORATED);//suppose this is your stage
    s.initModality(Modality.APPLICATION_MODAL);
    p = new Pane();
    p.setStyle("-fx-background-color: yellow");
    s.setScene(new Scene(p,150,150));
    s.show();
    s.addEventFilter(KeyEvent.KEY_RELEASED, new EventHandler<KeyEvent>() {
        @Override
        public void handle(KeyEvent t) {
            if(t.getCode().equals(KeyCode.ENTER)){
               //this is when the user clicks enter meaning he is done or something
                //like that
            }else{
                //here the code detect keycodes other than enter to get them
                KeyCode kc = t.getCode();
                //now store kc somewhere and use it.
            }
            t.consume();//the consume here is because i do not want
            //the TextField to hear about the keypressed.
            //remove it if you want it to be notified
        }
    });

这就是代码的工作方式,因为您不希望 TextField 中断 在您的 Stage 上调用添加事件过滤器,Stage 将首先收到 USB 键盘按下的任何按键的通知。就是这样,非常简单

希望对你有帮助

关于JavaFX等待用户输入的文本,没有任何文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38766656/

相关文章:

java - 列表数组错误?

java - 二维表和 NullPointerException

java - 在对象数组上设置监听器

java - JavaFX 中的动画图表

java - 编程语言捕获和处理的异常算作软件中断吗?

java - 为什么我的共享首选项即使在全新安装后仍包含我的 key ?

model-view-controller - 具有多个 Controller 的 MVC

java - 回调<P,R> 和函数<T,R> 之间的区别

针对不同的屏幕分辨率测试 JavaFx 应用程序

java - 约翰·康威的生命游戏