【问题标题】:Java JTextField setPlaceholder not workingJava JTextField setPlaceholder 不起作用
【发布时间】:2018-06-18 03:26:22
【问题描述】:

只是一个简单的问题,但我设置了一个带有 JFormattedTextField 的小顾。我想要输入日期的文本框,并且我想要文本框显示“yyyy-mm-dd”。

当我使用以下代码时它不起作用:

<pre>dateFormatter = new MaskFormatter("####-##-##");
            dateFormatter.setPlaceholderCharacter('_');
            //dateFormatter.setPlaceholder("yyyy-mm-dd");

            startDate = new JFormattedTextField  (dateFormatter);
            dateFormatter.getDisplayValue(startDate, "123");
            //startDate.addActionListener(this);
            startDate.addPropertyChangeListener("value", this

如何修改代码以使其正常工作?我已经尝试了几种不同的方法,如果我只想使用“_”作为 PlaceholderCharacter 而上述方法有效,但当我尝试将占位符设置为“yyyy-mm-yy”时则不行。

顺便说一下,我使用的是 java 1.6。

有人知道如何解决这个问题吗?

【问题讨论】:

  • 听起来更像是你想要默认 API 提供的“占位符”支持(SwingX 有它),但我怀疑你会很幸运地让它与 JFormattedTextField 一起工作,因为它显示一直都是“文字”。更好的解决方案可能是使用某种日期选择器
  • 请注意,格式“yyyy-mm-dd”将显示年-分-日。当您想查看年月日时,可能需要“yy-MM-dd”。
  • I want the textbox to show "yyyy-mm-dd". - 我从来没有用 JFormattedTextField 尝试过,但也许 Text Prompt 类会做你想做的事。

标签: java swing jtextfield


【解决方案1】:

java中没有占位符,可以使用鼠标适配接口,onclick set textfiled.setText("");

textArea.addMouseListener(new MouseAdapter() {
  public void mouseClicked(MouseEvent e) {
    if (e.getButton() == MouseEvent.BUTTON1)
 {
      textArea.setText("..");
    } 
    }

https://docs.oracle.com/javase/tutorial/uiswing/events/mouselistener.html

【讨论】:

    猜你喜欢
    • 2012-09-24
    • 2015-02-21
    • 2013-11-03
    • 2021-12-27
    • 2016-08-23
    • 2016-01-21
    • 2013-12-17
    • 1970-01-01
    相关资源
    最近更新 更多