【问题标题】:SWT text field for date日期的 SWT 文本字段
【发布时间】:2012-09-03 11:27:14
【问题描述】:

我正在使用常规 SWT 文本字段来表示日期。

问题是我有这个文件的默认值,但是我添加了一个监听器来弹出一个 SWT 日历来选择新的日期。

它工作正常,但是是否有一个选项可以使用户无法编辑该字段并且日历的侦听器仍然有效。

我不希望用户手动编辑此字段,只是为了使用 SWT CALENDAR。

谢谢

【问题讨论】:

  • 从用户体验的角度来看,请不要这样做。除非你有充分的理由,否则很多用户都喜欢输入日期,因为他们发现速度更快。

标签: java swt


【解决方案1】:

以下方法不起作用吗?

final Text text = new Text(parent, SWT.BORDER);
text.setEditable(false);

text.addListener(SWT.MouseUp, new Listener() {

    @Override
    public void handleEvent(Event arg0) {
        System.out.println("Event");
        text.setText("new text");
    }
});

【讨论】:

  • 否,因为那时 SWT CALENDAR 的侦听器不起作用。
  • @user1205079 改变了我的答案。尽管文本不可编辑,但触发事件。
  • 正确,但在用户从日历中选择日期后,它不能再次插入到文本中。:(
  • @user1205079 为什么不呢?检查更新的答案。这对我有用。
  • text.setText("new text") 再次调用监听类循环的问题。
【解决方案2】:

简单的答案 - 不要使用文本字段,而是使用带有按钮的标签。

否则你将不得不惹恼听众

【讨论】:

  • 它不能使用标签,因为我需要看起来像文本和标签
  • 添加一个不可编辑的文本和一个按钮来设置日期。按钮将触发 Caledar 小部件,文本将显示一个值。
猜你喜欢
  • 2014-12-08
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-23
  • 1970-01-01
  • 2013-09-09
  • 1970-01-01
相关资源
最近更新 更多