当前位置: 首页 > 面试题库 >

Java-文本字段上的占位符

甄飞飙
2023-03-14
问题内容

我正在尝试使用Swing创建GUI。我的问题是,我有一个文本字段,但我希望它有一个“占位符”(如html)。我在这里和那里读到,可以通过重写文本字段的paint()来完成此操作。

由于生成了我的代码,因此我发现我需要使用“自定义创建代码”来覆盖生成的代码。

这是我在“自定义创建代码”字段中输入的内容

new javax.swing.JTextField()
{
    String test = super.getText();
    String hint = "Username";

    public void paint(Graphics g)
    {
        if ( test == null || test.length() < 1 ) {
            g.setColor( Color.red );
            g.drawString(hint, 0, 0);
        }

        g.setColor(Color.BLACK);
        super.paint(g);
    }
}

这将产生以下输出

javax.swing.JTextField username = new javax.swing.JTextField()
{
    String test = super.getText();
    String hint = "Username";

    public void paint(Graphics g)
    {
        if ( test == null || test.length() < 1 ) {
            g.setColor( Color.red );
            g.drawString(hint, 0, 0);
        }

        g.setColor(Color.BLACK);
        super.paint(g);
    }
};

现在,我看到了textField,但其中没有任何内容,也许我需要在某些事件上添加一些功能,但是我不确定。

如果有人可以伸出援手,我将不胜感激。

编辑:这是我想做的一个演示:http :
//davidwalsh.name/demo/html5-placeholder.php


问题答案:

我在oracle论坛上发现了这个。

public class TextFieldWithPrompt extends JTextField{

@Override
protected void paintComponent(java.awt.Graphics g) {
    super.paintComponent(g);

    if(getText().isEmpty() && ! (FocusManager.getCurrentKeyboardFocusManager().getFocusOwner() == this)){
        Graphics2D g2 = (Graphics2D)g.create();
        g2.setBackground(Color.gray);
        g2.setFont(getFont().deriveFont(Font.ITALIC));
        g2.drawString("zip", 5, 10); //figure out x, y from font's FontMetrics and size of component.
        g2.dispose();
    }
  }

https://forums.oracle.com/forums/thread.jspa?threadID=1349874



 类似资料:
  • 问题内容: 如何以html形式居中输入字段的占位符对齐方式? 我正在使用以下代码,但是它不起作用: CSS-> HTML-> 问题答案: 如果只想更改占位符样式

  • 我想将占位符添加到类似于HTML5占位符属性的TextField,但我找不到合适的方法。有没有或唯一的方法是实现自己?

  • 本文向大家介绍Safari中的HTML5日期字段和占位符文本,包括了Safari中的HTML5日期字段和占位符文本的使用技巧和注意事项,需要的朋友参考一下 占位符属性不支持输入类型日期上的输入元素。 但是,您可能已经看到它在Safari Web浏览器上有效,因为它不支持日期类型。那将意味着该属性将被忽略,而其余仅是纯文本字段。 因此,以下在Safari桌面上有效- 和HTML-

  • 问题内容: 在Django中,我具有以下代码,该代码在HTML页面上创建用户名和密码表单: 我想在该字段中添加“用户名”和“密码”占位符文本,然后在用户单击该字段时消失。实现此目标的最佳方法是什么? 问题答案: 您必须使用占位符属性 要么

  • 问题内容: 我已经在Blackberry应用程序的屏幕之一中放了一个。我必须显示一个占位符文本,以提示用户输入信息。 这是下面的代码 任何人,请建议我如何实施相同的方法。 谢谢。 问题答案: 您可以对普通EditField使用与此处所示类似的技术。基本上,您需要重写子类中的方法。在中,检查并查看该字段是否为空,如果是,则手动绘制所需的 占位符 文本。 不同的是,是有它的内部。因此,要正确绘制文本,

  • 问题内容: 我正在尝试创建一个程序,该程序可以自动在屏幕上搜索文本字段,然后在该文本字段中重复输入一个单词。有没有可以找到文本字段的类?还是可以找到文本字段的任何方式?因为我知道Robot类可以键入文本,所以我只需要将光标移到文本字段上并使用mousePress()和mouseRelease()方法即可。 谢谢 问题答案: 我无法直接为您提供解决方案,但是我弄乱了一些代码,也许可以为您指明正确的方