如何在JTextField中动态编写格式化的文本,例如粗体,斜体或带有项目符号和编号?

时间:2019-06-14 17:49:48

标签: java swing

我如何设置JTextFiled中的格式化文本,就像在此网站上发布答案时一样,我们可以更改字体样式和添加编号等。

2 个答案:

答案 0 :(得分:0)

Google是您的最佳帮助。构建它的步骤将遵循类似的步骤。

1: Create identifier, some character combination/symbol to define what's what(bold, italicized, underlined).

2: When text is passed into your program have something that checks to see if your identifiers were used.  

3:  If you find and identifier, then use an if statement, switch or something to change the font to what you want and remove the identifier from your string.

4. Then display the string where you want it.

干杯。

答案 1 :(得分:0)

我真的不明白你的问题。您需要详细说明,以便其他观众能够为您提供帮助。

  1. 您是否将TextField设置为粗体输入?
  2. 您是否要让文本字段仅接受数字?

  3. 详细说明 项目符号和数字。

如果您尝试创建自己的内置函数(例如textField),则仅接受数字。

您必须创建一些Java类。
例如

template.java

  private JTextField createText(boolean acceptOnlyNumbers){
     JTextField userInput;
        if(acceptOnlyNumbers != false){
             userInput.addKeyListener(new acceptNumberOnly(userInput))
        }
     return userInput;    
  }

您可以在同一个Java类中创建此文件,但是最好的方法是将您的侦听器分配给另一个类,这样,每当您要动态修改时,都可以对该文件进行更改而不是搜索它。

class acceptNumberOnly implements addKeyListener{
JTextField textField ;

public acceptNumberOnly(JTextField textField){
      this.textField = textField
}

textField.addKeyListener(new KeyAdapter() {
    public void keyTyped(KeyEvent e) {
    char c = e.getKeyChar();

if (!(Character.isDigit(c) || (c == KeyEvent.VK_BACK_SPACE) || (c == KeyEvent.VK_DELETE))) {
                        e.consume();
                    }
                }
            });
    }

我认为这是最佳使用方法之一,将您的组件归为一类。因此您可以反复使用此组件,并且代码将变得更加整洁。