我试图从一个简单的ArrayList的内容填充ListView。这是我的
Controller.java文件:
package design;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.ResourceBundle;
import javafx.beans.property.ListProperty;
import javafx.beans.property.SimpleListProperty;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.ListView;
public class Controller {
@FXML private Button buttontest;
@FXML private ListView<Song> listViewofSongs;
protected List<Song> songList = new ArrayList<>();
protected ListProperty<Song> listProperty = new SimpleListProperty<Song>();
Song Language = new Song("Peter", "myalbum", "yes", 2010);
public void addSong(Song song){
songList.add(song);
}
public void initialize(URL url, ResourceBundle rb) {
addSong(Language);
listViewofSongs.setItems(FXCollections.observableList(songList));
}
}
这是我的Style.fxml文件:
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.Separator?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.Pane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.text.Font?>
<GridPane prefHeight="499.0" prefWidth="700.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1" fx:controller="design.Controller">
<columnConstraints>
<ColumnConstraints />
<ColumnConstraints />
<ColumnConstraints maxWidth="0.0" minWidth="0.0" prefWidth="0.0" />
<ColumnConstraints maxWidth="0.0" minWidth="0.0" prefWidth="0.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints />
<RowConstraints />
<RowConstraints maxHeight="0.0" minHeight="0.0" prefHeight="0.0" />
<RowConstraints maxHeight="10.0" minHeight="0.0" prefHeight="0.0" />
<RowConstraints maxHeight="10.0" minHeight="0.0" prefHeight="0.0" />
<RowConstraints fillHeight="false" maxHeight="500.0" minHeight="10.0" prefHeight="240.0" />
<RowConstraints fillHeight="false" maxHeight="500.0" minHeight="10.0" prefHeight="149.0" />
<RowConstraints fillHeight="false" maxHeight="500.0" minHeight="10.0" prefHeight="50.0" />
</rowConstraints>
<children>
<Pane prefHeight="64.0" prefWidth="700.0">
<children>
<Label layoutX="259.0" layoutY="14.0" text="Song Library">
<font>
<Font name="Consolas Bold" size="26.0" />
</font>
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding>
</Label>
</children>
</Pane>
<Separator prefWidth="200.0" GridPane.rowIndex="4" />
<ListView fx:id="listViewofSongs" editable="true" prefHeight="239.0" prefWidth="700.0" GridPane.rowIndex="5" />
<Label text="Song Info" GridPane.halignment="CENTER" GridPane.rowIndex="6" GridPane.valignment="TOP">
<GridPane.margin>
<Insets bottom="10.0" />
</GridPane.margin>
<font>
<Font name="Consolas" size="22.0" />
</font>
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding>
</Label>
<Label GridPane.rowIndex="6" />
<Label text="NAME" GridPane.rowIndex="6">
<font>
<Font name="Calibri" size="19.0" />
</font>
<GridPane.margin>
<Insets bottom="60.0" left="200.0" />
</GridPane.margin>
</Label>
<TextField maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="25.0" prefWidth="343.0" GridPane.rowIndex="6">
<GridPane.margin>
<Insets bottom="60.0" left="275.0" />
</GridPane.margin>
</TextField>
<Label text="ARTIST" GridPane.rowIndex="6">
<font>
<Font name="Calibri" size="19.0" />
</font>
<GridPane.margin>
<Insets left="200.0" />
</GridPane.margin>
</Label>
<TextField maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="25.0" prefWidth="343.0" GridPane.rowIndex="6">
<GridPane.margin>
<Insets left="275.0" />
</GridPane.margin>
</TextField>
<Label text="ALBUM" GridPane.rowIndex="6">
<font>
<Font name="Calibri" size="19.0" />
</font>
<GridPane.margin>
<Insets bottom="-60.0" left="200.0" />
</GridPane.margin>
</Label>
<TextField maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="25.0" prefWidth="343.0" GridPane.rowIndex="6">
<GridPane.margin>
<Insets bottom="-60.0" left="275.0" />
</GridPane.margin>
</TextField>
<Label text="YEAR" GridPane.rowIndex="6">
<font>
<Font name="Calibri" size="19.0" />
</font>
<GridPane.margin>
<Insets bottom="-120.0" left="200.0" />
</GridPane.margin>
</Label>
<TextField maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="25.0" prefWidth="343.0" GridPane.rowIndex="6">
<GridPane.margin>
<Insets bottom="-120.0" left="275.0" />
</GridPane.margin>
</TextField>
<Button mnemonicParsing="false" prefHeight="28.0" prefWidth="75.0" text="ADD" GridPane.rowIndex="7">
<GridPane.margin>
<Insets left="125.0" />
</GridPane.margin>
<font>
<Font name="Corbel" size="15.0" />
</font>
</Button>
<Button mnemonicParsing="false" prefHeight="28.0" prefWidth="75.0" text="EDIT" GridPane.rowIndex="7">
<font>
<Font name="Corbel" size="15.0" />
</font>
<GridPane.margin>
<Insets left="325.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" prefHeight="28.0" prefWidth="75.0" text="DELETE" GridPane.rowIndex="7">
<font>
<Font name="Corbel" size="15.0" />
</font>
<GridPane.margin>
<Insets left="525.0" />
</GridPane.margin>
</Button>
<Separator orientation="VERTICAL" prefHeight="200.0" GridPane.rowIndex="7">
<GridPane.margin>
<Insets left="250.0" />
</GridPane.margin>
<padding>
<Insets bottom="5.0" left="5.0" right="5.0" top="5.0" />
</padding>
</Separator>
</children>
</GridPane>
该程序运行,但是我输入的歌曲没有出现在ListView中(并且Song类确实具有toString方法)。
我能做什么?
问题是没有将控制器的初始化为预期问题的质询者。
Java 8中FXMLLoader的操作有点奇怪。
如果您initialize()
在Controller中定义了无参数方法且未实现Initializable
接口,则FXML加载程序仍将自动调用initialize方法。
如果相反,您public void initialize(URL url, ResourceBundle rb)
在Controller中定义了参数化方法,则FXML加载程序将不会自动调用initialize方法, 除非 您的控制器也实现了该Initializable
接口。
由于问题中的代码使用的是参数化的initialize方法,并且也未实现Initializable,因此不会发生初始化。
初始化方法定义了对Keras层设置初始化权重的方法 不同的层可能使用不同的关键字来传递初始化方法,一般来说指定初始化方法的关键字是kernel_initializer 和 bias_initializer,例如: model.add(Dense(64, kernel_initializer='random_uniform', bias
初始化方法定义了对Keras层设置初始化权重的方法 不同的层可能使用不同的关键字来传递初始化方法,一般来说指定初始化方法的关键字是init,例如: model.add(Dense(64, init='uniform')) 预定义初始化方法 uniform lecun_uniform: 即有输入节点数之平方根放缩后的均匀分布初始化(LeCun 98). normal identity:仅用于权值矩
问题内容: 我正处于“操作方法”阶段,想知道服务器启动时是否有一种方法可以调用。 这将类似于Web应用程序,当我将托管bean与一起使用时:启动容器时,将对带注释的类进行实例化,并且可以从其构造函数中调用所需的任何东西。 有什么帮助吗? 问题答案: 因此,如果您用于服务请求,则可以创建,如果已经部署了应用程序,则在部署或服务器启动时将调用方法。 为此,创建将实现的类: 然后在您的中定义该监听器:
问题内容: 我刚刚将xcode更新为6.3.1。问题是自Swift 1.2起我收到了这个奇怪的错误消息。我收到这种错误消息 在此代码上 问题答案: 在调用任何init方法之前,必须初始化所有属性 因此,在调用super.init()之前先进行更改 例外: 可选属性 具有默认值的属性 懒惰的财产
以下是我的配置 java版本“1.8.0_101”java(TM)SE运行时环境(构建1.8.0_101-b13)java热点(TM)64位服务器虚拟机(构建25.101-b13,混合模式) 使用Apache http客户端v4.4调用Restful服务,服务URL具有有效的证书(SHA2) 我们使用apache http客户端调用服务。下面是代码 服务调用是间歇性失败的,有一个批处理过程在一个循
我正在尝试运行一个Spring项目。pom.xml: 结果是这样的: 2017-08-17 01:11:01.405信息9156---[restartedMain]org.ocp.TestruleemallApplication:在桌面上启动TestruleemallApplication-PL25CTR,PID 9156(C:\Users\Ilias\DesktoP\TestRuleEmall\