JavaFX比较使用列表将文本设置为标签的结果集<;标签>;显示空白标签

JavaFX比较使用列表将文本设置为标签的结果集<;标签>;显示空白标签,javafx,Javafx,如何使用数据库中的if-else语句将text设置为labelList。我尝试将查询的结果集与labelList进行比较,以便将文本设置为具有匹配标签Id的标签,但需要在labelList上进行迭代 显示 这是解决此问题的FXML文件 FXML.fxml <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Label?> <?import java

如何使用数据库中的if-else语句将text设置为labelList。我尝试将查询的结果集与labelList进行比较,以便将文本设置为具有匹配标签Id的标签,但需要在labelList上进行迭代 显示

这是解决此问题的FXML文件

    FXML.fxml
    <?xml version="1.0" encoding="UTF-8"?>

    <?import javafx.scene.control.Label?>
    <?import javafx.scene.layout.AnchorPane?>
    <?import javafx.scene.layout.VBox?>
    <?import java.util.ArrayList?>

    <AnchorPane id="AnchorPane" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8.0.141" fx:controller="randomvar.FXMLDocumentController">
        <VBox layoutX="250.0" layoutY="83.0" spacing="5.0">
            <children>
                <Label fx:id="labelts" prefWidth="100.0" style="-fx-border-color: gray;" />
                <Label fx:id="labeltt" prefWidth="100.0" style="-fx-border-color: gray;" />
                <Label fx:id="labeltu" prefWidth="100.0" style="-fx-border-color: gray;" />
                <Label fx:id="labeltv" prefWidth="100.0" style="-fx-border-color: gray;" />

                <fx:define>
                    <ArrayList fx:id="labelList" >
                        <fx:reference source="labelts"/>
                        <fx:reference source="labeltt"/>
                        <fx:reference source="labeltu"/>
                        <fx:reference source="labeltv"/>
                    </ArrayList>
                </fx:define>          
            </children>
        </VBox>
    </AnchorPane>
FXML.FXML
这是控制器文件,如何让脚本显示标签id“labelts”,而不是显示“label[id=labelts,styleClass=label]”

FXMLDocumentController
包随机变量;
导入java.sql.Connection;
导入java.sql.DriverManager;
导入java.sql.PreparedStatement;
导入java.sql.ResultSet;
导入java.sql.SQLException;
导入java.util.List;
导入javafx.fxml.fxml;
导入javafx.scene.control.Label;
公共类FXMLDocumentController{
@FXML
私人列表标签;
public void initialize()抛出ClassNotFoundException、SQLException{
连接conn=null;
Class.forName(“org.sqlite.JDBC”);
conn=DriverManager.getConnection(“jdbc:sqlite:C:\\test.db”);
String qry=“选择调用者,从tbldata中将(调用者)计数为总计,其中调用者=?”;
准备好的报表ps_qry=conn.prepareStatement(qry);
ps_qry.设置字符串(1,“ts”);
结果集rs_qry=ps_qry.executeQuery();
while(rs_qry.next()){
字符串名称=rs_qry.getString(“调用方”);
String total=String.valueOf(rs_qry.getInt(“total”);
对于(int i=0;i
此条件始终为
false
,因为您使用不同的对象类型:
标签
字符串

if (labelList.get(i).equals(name_)) {
在获得id的地方尝试此变体:

if (labelList.get(i).getId().equals(name_)) {
要仅打印标签id,请执行以下操作:

System.out.println(labelList.get(i).getId());

谢谢你,德米特罗。。。我使用您的解决方案如下

    for (int i = 0; i < labelList.size(); i++) {

        if (labelList.get(i).getId().contains(name_)) {
            System.out.println(labelList.get(i).getId());
            labelList.get(i).setText(total_);
        }
for(int i=0;i
看起来不错,但是使用
contains()
有点冒险,因为例如对于name
labelt
您将更新第一个找到的标签,因为
labelts
包含
labelt
。如果您计划使用与标签ID完全相同的名称,最好使用
equals()
。很抱歉,延迟回复..将使用equals()正如你所建议的。
System.out.println(labelList.get(i).getId());
    for (int i = 0; i < labelList.size(); i++) {

        if (labelList.get(i).getId().contains(name_)) {
            System.out.println(labelList.get(i).getId());
            labelList.get(i).setText(total_);
        }