gpt4 book ai didi

blackberry - 文本框值转换为星号符号,如密码编辑字段

转载 作者:行者123 更新时间:2023-12-04 06:17:35 24 4
gpt4 key购买 nike

我拍了一张自定义文本框图像,在该文本框中我想显示“输入密码”,当我关注该文本框字段并输入任何字符时,它会转换为星号符号,如密码编辑字段。

我想要像下面这样的图片:

password Box

最佳答案

我认为只有覆盖 paint(..) 才有可能的Editfield .可能是以下步骤可以实现所需的行为:

  • 将原始文本存储到局部变量。
  • 根据焦点状态、原始文本等生成假文本
  • 调用 super.paint(..) ,它将用假文本绘制该字段。
  • 使用 setText(..)将原始文本设置回来。

  • 实现草案:

    class MyEditField extends EditField {
    private final static String INIT_TEXT = "Enter Password";

    protected void paint(Graphics graphics) {
    String originalText = getText();
    String fakeText = originalText;

    if (originalText.equalsIgnoreCase("")) {
    fakeText = isFocus() ? originalText : INIT_TEXT;
    } else {
    fakeText = "";
    for (int i=0;i<originalText.length();i++) {
    fakeText += '*';
    }
    }

    setText(fakeText);
    super.paint(graphics);
    setText(originalText);
    }
    }

    上面的代码没有绘制边框。

    我们需要针对您在评论中提到的问题设置单色字体。这是一个示例代码:

    MyEditField me = new MyEditField();

    try {
    Font font = null;
    FontFamily fontFamily[] = FontFamily.getFontFamilies();
    for (int i=0;i<fontFamily.length; i++) {
    if (fontFamily[i].getName().equalsIgnoreCase("Courier New")) {
    font = fontFamily[i].getFont(FontFamily.SCALABLE_FONT,
    Font.getDefault().getHeight());
    me.setFont(font);
    break;
    }
    }
    } catch (Exception e) {
    }

    关于blackberry - 文本框值转换为星号符号,如密码编辑字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7036565/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com