小编dee*_*-64的帖子

IntelliJ IDEA bu​​ild.gradle.kts 自动完成功能不起作用

我有一个奇怪的问题,到目前为止我无法找到任何解决方案。我对 gradle 很陌生,并使用 kotlin 作为我的构建文件的脚本语言设置了一个项目。

无论我在哪里,人们似乎都在build.gradle.kts文件中具有全面的自动完成功能,但就我而言,IntelliJ 表现得好像它无法访问源代码。没有/非常基本的自动完成,只有非常基本的语法突出显示发生。

例如,如果我点击 plugins` 块(或任何其他与此相关的块)来查看定义,IntelliJ 会告诉我“找不到要到达的声明”

找不到要转到的声明

很少有上下文相关的自动完成功能:

只有基本的自动完成

我已经阅读了有关将分发 jar添加到文件的答案,但它没有改变任何内容。我的看起来像这样:-allgradle-wrapper.propertiesgradle-wrapper.properties

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Run Code Online (Sandbox Code Playgroud)

我在用:

IntelliJ IDEA 2019.3.1 (Ultimate Edition)
Build #IU-193.5662.53, built on December 18, 2019
Runtime version: 11.0.5+10 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Linux 5.4.12-arch1-1
Memory: 1981M
Cores: 8
Run Code Online (Sandbox Code Playgroud)

Gradle版本是:

./gradlew -v

------------------------------------------------------------
Gradle 6.1
------------------------------------------------------------

Build time:   2020-01-15 23:56:46 UTC
Revision:     539d277fdba571ebcc9617a34329c83d7d2b259e

Kotlin:       1.3.61
Groovy:       2.5.8
Ant:          Apache Ant(TM) version …
Run Code Online (Sandbox Code Playgroud)

intellij-idea gradle kotlin

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

如何将JavaFX Label绑定到ListView中的选定项目

我有一个装满POJO的ListView,并希望GUI中有一个标签来显示所选项目的信息.

我的POJO看起来像这样:

class Customer {
  private String name;
  ...
  public String getName() {
  return name; 
  }
Run Code Online (Sandbox Code Playgroud)

现在,当用户从列表中选择客户时,我希望在标签中显示所选客户的名称.

显然我不能name直接绑定,因为它不是一个Property.(而且我不想StringStringProperty-objects 替换我的客户,因为SimpleStringProperty它不是serializable,我需要Customer通过RMI转移.)

我试着BeanPathAdapterJFXtras(这看起来真的不错的方式)是这样的:

    BeanPathAdapter<MultipleSelectionModel> customerBeanPathAdapter;
    customerBeanPathAdapter = new BeanPathAdapter<>(lstCustomers.getSelectionModel());
    customerBeanPathAdapter.bindBidirectional("selectedItem.name", lblCustomerName.textProperty());
Run Code Online (Sandbox Code Playgroud)

但是这个解决方案只给我一个例外:

...
Caused by: java.lang.IllegalArgumentException: Unable to resolve accessor getSelectedItem
at jfxtras.labs.scene.control.BeanPathAdapter$FieldHandle.buildAccessor(BeanPathAdapter.java:3062)
at jfxtras.labs.scene.control.BeanPathAdapter$FieldHandle.buildAccessorWithLikelyPrefixes(BeanPathAdapter.java:3022)
at jfxtras.labs.scene.control.BeanPathAdapter$FieldHandle.updateMethodHandles(BeanPathAdapter.java:2986)
at jfxtras.labs.scene.control.BeanPathAdapter$FieldHandle.<init>(BeanPathAdapter.java:2977)
at jfxtras.labs.scene.control.BeanPathAdapter$FieldBean.performOperation(BeanPathAdapter.java:1348)
at jfxtras.labs.scene.control.BeanPathAdapter$FieldBean.performOperation(BeanPathAdapter.java:1186)
at jfxtras.labs.scene.control.BeanPathAdapter.bindBidirectional(BeanPathAdapter.java:567)
at jfxtras.labs.scene.control.BeanPathAdapter.bindBidirectional(BeanPathAdapter.java:369)
at at.gs1.sync.qm.client.gui.MainWindowController.initialize(MainWindowController.java:61)
... 22 more
Caused by: java.lang.IllegalAccessException: …
Run Code Online (Sandbox Code Playgroud)

java listview javafx javafx-2

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

标签 统计

gradle ×1

intellij-idea ×1

java ×1

javafx ×1

javafx-2 ×1

kotlin ×1

listview ×1