小编use*_*555的帖子

JavaFX的任务似乎消耗了异常.这是一个错误还是一个功能?

考虑以下代码:

Thread.setDefaultUncaughtExceptionHandler((Thread t, Throwable e) -> {
    System.out.println("An exception occurred!");
});

// set the exception handler for the JavaFX application thread
Thread.currentThread().setUncaughtExceptionHandler((Thread t, Throwable e) -> {
    System.out.println("An exception occurred!");
});

Task<?> task = new Task() {
    @Override
    public Void call() throws Exception {
        throw new RuntimeException("foobar");
    };
};

new Thread(task).start();
Run Code Online (Sandbox Code Playgroud)

如果我们运行代码,运行时异常永远不会触发默认的异常处理程序,而是由任务使用.我找到的唯一抵消这种方法的方法是在task.setOnFailed中重新抛出异常:

task.setOnFailed((WorkerStateEvent t) -> {
    throw new RuntimeException(task.getException());
});
Run Code Online (Sandbox Code Playgroud)

既然JavaFX 8现在支持UncaughtExceptionHandler,为什么不将异常传播到异常处理程序?

java javafx-8

21
推荐指数
3
解决办法
8067
查看次数

在JavaFX中单击外部可编辑的TableView单元格时如何提交?

我有一个表格单元工厂负责在JavaFX TableView中创建可编辑单元格.

我正在尝试为tableview实现一些附加功能,以便当用户在可编辑单元格外部单击时进行提交(编辑的文本将被保存,而不会根据默认的tableview行为进行丢弃.)

我添加了一个textField.focusedProperty()事件处理程序,我从文本字段提交文本.但是,当一个单击外部时,当前单元格cancelEdit()被调用并且调用commitEdit(textField.getText());无效.

我已经意识到,一旦cancelEdit()被称为TableCell.isEditing()返回false,所以提交永远不会发生.

如何在用户点击可编辑单元格外部时提交文本?

提交setOnEditCommit()事件处理程序后,将处理验证和数据库逻辑.我没有把它包含在这里,因为它很可能会使事情进一步复杂化.

// EditingCell - for editing capability in a TableCell
public static class EditingCell extends TableCell<Person, String> {
private TextField textField;

public EditingCell() {
}

@Override public void startEdit() {
    super.startEdit();

    if (textField == null) {
        createTextField();
    }
    setText(null);
    setGraphic(textField);
    textField.selectAll();
}

@Override public void cancelEdit() {
    super.cancelEdit();
    setText((String) getItem());
    setGraphic(null);
}

@Override public void updateItem(String item, boolean empty) {
    super.updateItem(item, empty); …
Run Code Online (Sandbox Code Playgroud)

java javafx-8

13
推荐指数
3
解决办法
9986
查看次数

PHP致命错误:调用未定义的函数utf8_decode()

我在互联网上搜索了这个错误.有人告诉我,我的电脑缺少lib xml for php.但我不知道如何在Ubuntu 12.04 TLS上安装它.

php xml ubuntu

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

标签 统计

java ×2

javafx-8 ×2

php ×1

ubuntu ×1

xml ×1