Java Swing,Booleans和textfields

时间:2014-04-25 17:25:33

标签: java swing

这是我正在进行的项目的当前代码。目前我正在尝试将值与textFields匹配,这是在按下某些按钮时产生的。例如,当您单击开始列车时,门打开将更改为已关闭,列车准备将更改为是,“列车开启”将更改为是,列车移动将更改为否。我对java swing非常新。

如果值为true或false,我尝试使用布尔值和If语句来生成消息。然后我将trainPowerField,trainMovingField,trainDoorsField和trainReadyField连接到textFields,将其作为textFields的值。 但我现在遇到的问题是:

FirstFrame.java:120:错误:没有为JTextField找到合适的构造函数(boolean)                         bottomRight.add(trainReady = new JTextField(trainReadyField));

对于每个textField。

我不明白我怎么没有合适的构造函数? 我也知道我已经让这比我应该做的更复杂,但是不明白其他任何方式去做。

编辑* 不得不因为一般原因删除代码。

2 个答案:

答案 0 :(得分:1)

没有JTextField构造函数只接受一个boolean参数,现在它并不想将其转换为String值。你需要明确地做。尝试使用

new JTextField(Boolean.toString(trainReadyField));

您需要为其他boolean值(trainPowerField等)执行相同的操作。

答案 1 :(得分:1)

JTextField构造函数需要一个字符串,而不是一个布尔值,请尝试以下所有字符串:

new JTextField(Boolean.toString(trainReadyField))

或者您甚至可以像转换一样编写自己的“toString”:

new JTextField(trainReadyField? "T" : "F"))

为了更好的代码可维护性,您应该编写自己的函数

public static String boolToText(boolean b) {
   if (b) return "T";
   return "F";
}