如何设置JTextField的值是不可编辑的,不应该在验证中考虑?

时间:2014-05-07 02:00:01

标签: jtextfield

您好我想将JTextField设置为this() - 。例如(999)999-9999喜欢这种格式,当我验证这种格式时不应该考虑,当我按退格键或删除它时不应删除。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

为了使其不可编辑,你应该这样做:

  • (JTextField的对象).setEditable(false);

我不清楚其他两个问题,请你解释一下。

答案 1 :(得分:0)

我希望这会对你有所帮助:

import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextArea;

public class Format extends JFrame {
    public JTextArea ja;

    public static void main(String args[]) {
        Format ft = new Format();
    }

    Format() {
        ja = new JTextArea("Enter Phone Number:");
        ja.addKeyListener(new KeyAdapter() {
            public void keyPressed(KeyEvent ke) {
                if (ke.getKeyCode() == ke.VK_ENTER) {
                    String st = ja.getText();
                    ja.setText("");
                    char[] ch = st.toCharArray();
                    if(ch.length==10){
                    for (int i = 0; i < ch.length; i++) {
                        if (i == 0) {
                            ja.append("(" + ch[i]);
                        } else if (i == 3) {
                            ja.append(")" + " " + ch[i]);
                        } else if (i == 6) {
                            ja.append("-" + ch[i]);
                        } else {
                            ja.append("" + ch[i]);
                        }
                    }
                    ja.setEditable(false);
                }
            }
            }
        });
        add(ja, BorderLayout.NORTH);
        setSize(new Dimension(500, 500));
        setLocationRelativeTo(null);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setVisible(true);
    }

}