首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX ListView setItems()无法解析符号

JavaFX ListView setItems()无法解析符号
EN

Stack Overflow用户
提问于 2020-02-18 17:34:53
回答 1查看 414关注 0票数 0

创建一个ListView图形用户界面应用程序,并且无法在我的JavaFX类上使用ListView。代码如下:

MP3.Java

代码语言:javascript
复制
package mp3player;

import javafx.application.Application;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.ListView;
import javafx.stage.Stage;

public class MP3 extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("mp3player.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();

    }


    public static void main(String[] args) {
        launch(args);
    }
}

MP3Controller.java

代码语言:javascript
复制
package mp3player;

import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.ListView;

public class MP3Controller {
    ObservableList<String> songs = FXCollections.observableArrayList("Song 1", "Song 2");
    ListView<String> songsView = new ListView<String>();

    songsView.setItems(songs);
}

mp3player.fxml

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>

<GridPane alignment="center" hgap="10" scaleY="1.0" vgap="10" xmlns="http://javafx.com/javafx/10.0.2-internal" xmlns:fx="http://javafx.com/fxml/1" fx:controller="mp3player.MP3Controller">
   <columnConstraints>
      <ColumnConstraints />
   </columnConstraints>
   <rowConstraints>
      <RowConstraints maxHeight="200.0" minHeight="171.0" prefHeight="200.0" />
      <RowConstraints maxHeight="29.0" minHeight="0.0" prefHeight="0.0" />
   </rowConstraints>
   <children>
      <VBox prefHeight="200.0" prefWidth="100.0">
         <children>
            <HBox prefHeight="50.0" prefWidth="100.0" />
            <HBox prefHeight="100.0" prefWidth="200.0">
               <children>
                  <ListView fx:id="songsView" prefHeight="67.0" prefWidth="146.0" />
               </children></HBox>
            <HBox prefHeight="47.0" prefWidth="100.0" />
         </children>
      </VBox>
   </children>
</GridPane>

任何帮助都将不胜感激。我不确定这里发生了什么,因为我非常密切地跟踪文档,我怀疑这可能与导入javafx有关。如果是这样的话,你可以尝试在你的机器上运行这个脚本,看看它是否工作。谢谢大家!

EN

回答 1

Stack Overflow用户

发布于 2020-02-18 17:45:07

尝试在代码中遵循您试图在方法或构造函数外部设置值,这就是它不允许您设置值的原因

您可以通过创建构造函数或方法来实现

代码语言:javascript
复制
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.ListView;

public class MP3Controller {
    ObservableList<String> songs = FXCollections.observableArrayList("Song 1", "Song 2");
    ListView<String> songsView = new ListView<String>();
    MP3Controller() {
        songsView.setItems(songs);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60277728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档