Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 JTextField와 JFormattedTextField의 차이점은 무엇입니까?


JTextField 일반 텍스트에 사용할 수 있는 반면 JFormattedTextField JTextField 를 확장할 수 있는 클래스입니다. 전화번호, 이메일, 날짜가 포함된 텍스트의 형식을 설정하는 데 사용할 수 있습니다. 등

JTextField

  • JTextFeld 사용자가 입력 텍스트 값을 한 줄 형식으로 입력할 수 있도록 하는 가장 중요한 구성 요소 중 하나입니다.
  • JTextField ActionListener 를 생성할 수 있습니다. 우리가 텍스트 필드에 일부 입력을 입력하려고 할 때 인터페이스는 CaretListener 를 생성할 수 있습니다. 캐럿(예:커서 ) 위치를 변경합니다.
  • JTextField MouseListener 를 생성할 수도 있습니다. 및 KeyListener 인터페이스.

예시

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JTextFieldTest extends JFrame {
   JTextField jtf;
   public JTextFieldTest() {
      setTitle("JTextField Test");
      setLayout(new FlowLayout());
      jtf = new JTextField(15);
      add(jtf);
      jtf.addActionListener(new ActionListener() {
         public void actionPerformed (ActionEvent ae) {
            System.out.println("Event generated: " + jtf.getText());
         }
      });
      setSize(375, 250);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String args[]) {
      new JTextFieldTest();
   }
}

출력

Java에서 JTextField와 JFormattedTextField의 차이점은 무엇입니까?

JFomattedTextField

  • 형식이 지정된 텍스트 필드는 JFormattedTextField 클래스의 인스턴스입니다. JTextField의 직접적인 하위 클래스입니다. .
  • JFormattedTextField 문자의 유효성을 제어한다는 점을 제외하고는 일반 텍스트 필드와 같습니다. 사용자 유형이며 포맷터 와 연결될 수 있습니다. 사용자가 입력할 수 있는 문자를 지정합니다.
  • JFormattedTextField 형식 클래스 의 하위 클래스입니다. 서식이 지정된 텍스트 필드를 작성합니다. 포맷터를 만들고 필요한 경우 사용자 정의할 수 있습니다. JFormattedTextField(Format format)를 호출할 수 있습니다. Format 유형의 인수를 사용하는 생성자 .
import java.awt.*;
import javax.swing.*;
import javax.swing.text.*;
public class JFormattedTextFieldTest extends JFrame {
   JFormattedTextField jftf;
   MaskFormatter mf;
   public JFormattedTextFieldTest() {
      setTitle("JFormattedTextField Test");
      setLayout(new FlowLayout());
      // A phone number formatter - (country code)-(area code)-(number)
      try {
         mf = new MaskFormatter("##-###-#######");
         mf.setPlaceholderCharacter('#');
         jftf = new JFormattedTextField(mf);
         jftf.setColumns(12);
      } catch(Exception e) {
         e.printStackTrace();
      }
      add(jftf);
      setSize(375, 250);
      setLocationRelativeTo(null);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
      setVisible(true);
   }
   public static void main(String args[]) {
      new JFormattedTextFieldTest();
   }
}

출력

Java에서 JTextField와 JFormattedTextField의 차이점은 무엇입니까?