GridPane paneForVBoxes = new GridPane();
paneForVBoxes.setPadding(new Insets(10, 10, 10, 10));
paneForVBoxes.setVgap(10);
paneForVBoxes.setHgap(10);
VBox units = new VBox(12);
units.setAlignment(Pos.CENTER_LEFT);
Label lbDec = new Label("Decimal");
Label lbHex = new Label("Hex");
Label lbBin = new Label("Binary");
units.getChildren().addAll(lbDec, lbHex, lbBin);
VBox textFields = new VBox(5);
TextField tfDec = new TextField();
tfDec.setPrefColumnCount(19);
tfDec.setAlignment(Pos.CENTER_RIGHT);
TextField tfHex = new TextField();
tfHex.setPrefColumnCount(19);
tfHex.setAlignment(Pos.CENTER_RIGHT);
TextField tfBin = new TextField();
tfBin.setPrefColumnCount(19);
tfBin.setAlignment(Pos.CENTER_RIGHT);
textFields.getChildren().addAll(tfDec, tfHex, tfBin);
paneForVBoxes.add(units, 0, 0);
paneForVBoxes.add(textFields, 1, 0);
我在一定程度上实现了这一点,但当我删除textfields中的所有字符时,我会收到NumberFormatExceptions,我不知道如何解决这个问题。这是我试图修复的问题:请注意,这只是十进制到二进制字段的编码,通过对此进行简单的修复,我可以将其应用到其余尚未开发的代码中。注意:我还在tfdec.settext(“0”)内部和周围尝试了
,但eclipse确实不喜欢这样做integer.parseint(s)
;
tfDec.setOnKeyReleased(e -> {
if (tfDec.equals("")) {
tfDec.setText("0");
}
else {
String bin = Integer.toBinaryString(Integer.parseInt(tfDec.getText()));
tfBin.setText(bin);
}
});
/完整代码/
package application;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class Elias16_5 extends Application {
@Override
public void start(Stage primaryStage) {
try {
GridPane paneForVBoxes = new GridPane();
paneForVBoxes.setPadding(new Insets(10, 10, 10, 10));
paneForVBoxes.setVgap(10);
paneForVBoxes.setHgap(10);
VBox units = new VBox(12);
units.setAlignment(Pos.CENTER_LEFT);
Label lbDec = new Label("Decimal");
Label lbHex = new Label("Hex");
Label lbBin = new Label("Binary");
units.getChildren().addAll(lbDec, lbHex, lbBin);
VBox textFields = new VBox(5);
TextField tfDec = new TextField();
tfDec.setPrefColumnCount(19);
tfDec.setAlignment(Pos.CENTER_RIGHT);
TextField tfHex = new TextField();
tfHex.setPrefColumnCount(19);
tfHex.setAlignment(Pos.CENTER_RIGHT);
TextField tfBin = new TextField();
tfBin.setPrefColumnCount(19);
tfBin.setAlignment(Pos.CENTER_RIGHT);
textFields.getChildren().addAll(tfDec, tfHex, tfBin);
paneForVBoxes.add(units, 0, 0);
paneForVBoxes.add(textFields, 1, 0);
tfDec.setOnKeyReleased(e -> {
if (tfDec.equals("")) {
tfDec.setText("0");
}
else {
String bin = Integer.toBinaryString(Integer.parseInt(tfDec.getText()));
tfBin.setText(bin);
}
});
Scene scene = new Scene(paneForVBoxes, 300, 100);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setTitle("Data Conversion");
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
你应该试试stringutils。所以这段代码:
if (tfDec.equals("")) {
将是
if (StringUtils.isBlank(tfDec.getText())) {
在这里阅读更多:stringutils.isblank()vs string.isempty()
tfDec.getText().equals("")
tfDec.equals("")
问题内容: 我正在尝试使用存储过程基于varchar类型的“名称”列的输入值来返回“项目”表的“ ItemId”列值,但是每当我将任何值传递给存储过程时,它都会向我返回错误: 将数据类型varchar转换为int时出错。 这就是我所说的: 问题答案: 您必须匹配参数:RETURN不会填充OUTPUT参数:您对@itemid的赋值可以做到这一点。 另外,您存储的过程太复杂了。对于从存储的proc返回
问题内容: 在SO上进行了搜索和搜索,无法弄清楚 尝试将每个字段作为FLOAT进行铸造都无济于事,转换没有给我任何进一步的帮助。 如何获取以下case子句以返回THEN部分中所述的值? 错误:消息8114,级别16,状态5,行1将数据类型varchar转换为float时出错。 我的SQL查询的错误部分: average_days_pay = float terms_code = char 问题答案
问题内容: 我已经将包含字符串值(例如吃)和浮动值(例如0.87)的CSV文件导入到phpMyAdmin数据库的表中。获得所有字符串值并仅保留具有十进制值的行后,需要将此类值从VARCHAR转换为DECIMAL / FLOAT,以便可以对该属性执行MAX()。 我该怎么做呢?每次我尝试通过phpMyAdmin中的GUI进行此操作时,我所有的值都会自动四舍五入为0和1s。 请帮我! 问题答案: 我认
问题内容: 我已经搜索了这个很棒的论坛并在Google周围搜索,但无法解决。 我们有两个表(相信我,我与这些表无关)。这两个表都有一个名为的列。 然而,在一个表中,数据类型就是和在另一个表中,这是。 我们从选择这里被定义为和保存该ID写入其中被定义为。 作为数据类型descrepancy的结果,我们得到错误转换数据类型来。 在不弄乱数据库的情况下,我想强制使用摆脱该错误。 有什么想法我在下面的代码
问题内容: 我在代码隐藏中收到转换失败的错误。我的代码如下: 我收到以下错误: 将nvarchar值转换为数据类型int时,转换失败。 在这里必须进行哪些更改? 问题答案: 我想这是一个整数,但您正在分配一个字符串。因此,这可能会解决它: 编辑:由于您已评论该会话存储了用户名,但该列是一个int列,因此您有三个选择: 更改会话以存储用户标识而不是名称 更改列以存储用户名 从存储用户名的表中选择用户
问题内容: 我创建了一个过程并收到了此消息 将varchar值’%’转换为数据类型int时,转换失败。 我不知道这可能是什么,但是当我将过程更改为这样时: 似乎工作正常。我是SQL的新手,所以可以得到任何帮助,也许有更好的方法来做我想做的事情? 问题答案: 这是在子句中: 是一个整数。因此,您需要将其转换为字符串: 为什么要使用称为的列是可疑的。也许您只想要: