使用数字-Javafx [重复]

Posted

技术标签:

【中文标题】使用数字-Javafx [重复]【英文标题】:Using numbers -Javafx [duplicate] 【发布时间】:2016-08-29 09:41:30 【问题描述】:

我在制作这个应用程序时遇到了非常困难的事情。 该应用由数字组成,但看起来 Javafx Text() 和 Label() 只支持字符串。

我的问题

        int amount =23;
        Text text = new Text(amount);//ERROR cant not convert in to string.
        Text text2 = new Text(amount.toString();//ERROR int cannot be dereferenced

我的问题:

如何将数字 23 打印为实际数字而不是字符串; 记住数字需要打印为数字 int javafx 不在控制台中;

为什么

因为在应用程序的后者中,我将从用户那里获得一个数字,并且需要将其添加到:int amount = 23;我不能加在一起。哈哈。

【问题讨论】:

【参考方案1】:

Text 这样的UI 组件只处理字符串。您需要将您的int 转换为String,例如

Text text = new Text(Integer.toString(amount));

如果要将用户输入添加到原始值并将文本更新为新值,则应存储原始 int 值,添加来自用户的值,然后使用新文本更新 Text 节点.

【讨论】:

很好,但是我将如何修改 int amount =23;稍后。不使用 text.setText(); 如果您想在您的 UI 中反映修改后的值,您将无法替代 setText()(除了删除节点并重新添加一个新节点)。 setText() 有什么问题?【参考方案2】:

你可以尝试像这样使用setText():

setText("" +amount);

【讨论】:

虽然这行得通,但字符串连接会临时创建比您需要的更多的 String 对象(String 是不可变的)。因此,如果有更好的方法,使用 + 运算符绝不是一个好习惯。 Rahul Stefan 是对的,您的答案也有效。但有更好的方法。感谢您抽出宝贵时间回答。【参考方案3】:

从 int 中获取 String 的不同方法...

    Text text = new Text(new Integer(amount).toString());
Text text = new Text(Integer.toString(amount)); // static way

或使用String.valueOf(amount);

或使用StringBuilder

StringBuilder sb = New StringBuilder();
sb.append(amount);
Text text = new Text(sb.toString());

【讨论】:

我可以稍后更改它,假设用户给了我一个数字 28。我必须将该值添加到 int amount =23;我想不使用 text.setText(); 当然——我所有的 describe 方法都向您展示了一种从整数创建字符串对象的动态方法。你只需要通过计算的金额.. 请问如何。我正在尝试从 TextField 中获取金额 @DocType 我对 TextField 或 JavaFX 一无所知,但我知道如何获取原始 int 的字符串对象。对于您自己的问题,您应该检查 javadoc 是否有任何方法可以让您获得 Text Object 的值,但这与这里的问题无关。 感谢您花时间回答。好吧,所有答案都有效,但我喜欢你给了我多种选择。

以上是关于使用数字-Javafx [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用JAVAFX和SWING有啥区别[重复]

JavaFX不会连接到MYSQL [重复]

JavaFX作业[重复]

找不到javafx.controls JavaFX 11 / JDK 11.0.1 [重复]

使用两个线程会导致 JavaFX 崩溃 [重复]

新项目中的 JavaFX 或 Swing [重复]