小编Sha*_*gle的帖子

JavaFX 8中带有TextFormatter和/或UnaryOperator的整数的数字TextField

我试图通过使用JavaFX 8的TextFormatter为整数创建一个数字TextField.

使用UnaryOperator解决方案:

UnaryOperator<Change> integerFilter = change -> {
    String input = change.getText();
    if (input.matches("[0-9]*")) { 
        return change;
    }
    return null;
};

myNumericField.setTextFormatter(new TextFormatter<String>(integerFilter));
Run Code Online (Sandbox Code Playgroud)

使用IntegerStringConverter的解决方案:

myNumericField.setTextFormatter(new TextFormatter<>(new IntegerStringConverter()));  
Run Code Online (Sandbox Code Playgroud)

两种解决方案都有自己的问题.使用UnaryOperator,我只能输入0到9之间的数字,但我还需要输入负值,如"-512",其中只允许在第一个位置使用符号.此外,我不希望像"00016"这样的数字仍然可能.

IntegerStringConverter方法效果更好:不接受每个无效的数字,如"-16-123",像"0123"这样的数字转换为"123".但转换仅在文本提交时(通过按Enter键)或TextField失去焦点时发生.

有没有办法在每次更新TextField的值时使用IntegerStringConverter强制转换第二个方法?

java javafx numeric formatter textfield

10
推荐指数
1
解决办法
2万
查看次数

Eclipse,Git和Bitbucket - 无法推送 - 错误401未经授权

我有Bitbucket和EGit的问题.我在BitBucket上创建了一个新的存储库,并在Eclipse中创建了一个新项目.当我尝试推送提交时,我收到以下错误消息:

Can't connect to any repository: https://bitbucket.org/MyName/MyProject.git 
(https://bitbucket.org/MyName/MyProject.git: 401 Unauthorized)
Run Code Online (Sandbox Code Playgroud)

我也试过,https://MyName@bitbucket.org/MyName/MyProject.git但我得到了同样的错误.在创建提交之后,我通过使用命令行推进,git push并且它没有问题.之后我尝试用Eclipse和EGit推送,但我又遇到了同样的错误.我多次检查了我的帐户名和密码.

我是否需要以某种方式配置EGit才能从Eclipse推送到BitBucket?一个月前,我总是在没有问题的情况下将Eclipse推送到与Eclipse不同的主机上的存储库.

eclipse git bitbucket git-push egit

8
推荐指数
1
解决办法
4132
查看次数

在 C++11 中模拟类似 Arduino 的中断

我正在开发一个粗略的 Arduino 模拟器。它的主要功能应该是测试由控制结构、循环、开关和子程序组成的简单代码。

我的主要想法是自己简单地提供 Arduino 库的功能,例如像digitalWrite()or 之类的功能digitalRead(),它可以从外部应用程序(如虚拟面包板)读取和发送引脚状态。

下图显示了我目前的概念。模拟器基本上是一个线程,它执行setup()一次函数,然后开始执行loop()函数直到停止。它可以从控制(主)线程停止或暂停。

在此处输入图片说明

setup()loop()函数的实现,以及一些变量,由用户提供,不能修改或访问。

到现在为止还挺好。现在我想要模拟中断。当模拟器线程正在执行loop()函数时,外部应用程序会触发一个中断。这应该导致中断处理程序的执行isr(),它也由用户提供并且不能更改。

我有两种不同的方法来解决这个问题:

  1. 暂停模拟器线程,在不同的线程中执行中断处理程序并恢复模拟器线程。
  2. 改用信号处理程序,在发生中断时向进程发送信号。

这两种方法都有自己的问题。对于第一个,我需要以某种方式同步状态,这似乎更像是一个可怕的黑客。对于第二个选项,据我所知,我无法指定哪个线程将执行信号处理程序。

如果可能,解决方案应该与平台无关。但是,该解决方案绝对需要在Windows(MinGW甚至Cygwin)下编译和运行

c++ windows simulation arduino interrupt

6
推荐指数
1
解决办法
208
查看次数

Java - 无法将对象作为文件写入目录

我的程序有一个奇怪的问题.我写了一个小程序来将对象写入特定目录中的文件.

玩家级:

package readwrite;

import java.io.Serializable;

public class Player implements Serializable {

    private String name;
    private int level;

    public Player(String name, int level) {
        this.name = name;
        this.level = level;
    }

    public String getName() {
        return name;
    }

    public int getLevel() {
        return level;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public String toString() {
        return "Name: " + name + ", Level: " + level;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

java directory io file object

1
推荐指数
1
解决办法
769
查看次数