如何在文本小部件中读取 LocalTime 变量

how to read LocalTime variable in a Text widget

  import org.eclipse.swt.widgets.Text;
  ...
  private Text textora;
   ...
  LocalTime ora = textora.getLocalTime();

我无法从用于输入的文本格式中读取 LocalTime 变量

错误:

Multiple markers at this line
- The method getLocalTime() is undefined for the 
 type Text
- The method getTime() is undefined for the type 
 Text

SWT Text 控件只是纯文本,只有一个 getText 方法来获取输入的字符串。要将文本转换为 LocalTime,您必须解析文本:

String timeStr = textora.getString();

LocalTime time = LocalTime.parse(timeStr);
如果字符串不是有效时间,

parse 将抛出 DateTimeParseException 异常。

您还可以使用 SWT DateTime 控件允许输入时间:

import org.eclipse.swt.widgets.DateTime;

...

DateTime dt = new DateTime(parent, SWT.TIME);

...

LocalTime time = LocalTime.of(dt.getHours(), dt.getMinutes(), dt.getSeconds());