Java Tutorial/Swing/JPasswordField

Материал из Java эксперт
Перейти к: навигация, поиск

Add action listener to JPasswordField

   <source lang="java">

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JPasswordField; public class Main extends JFrame {

 JPasswordField field = new JPasswordField("*", 10);
 public Main() {
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   field.addActionListener(new ActionListener() {
     public void actionPerformed(ActionEvent e) {
       System.out.println("Field=" + field.getText());
     }
   });
   getContentPane().add(field);
   pack();
   setVisible(true);
 }
 public static void main(String arg[]) {
   new Main();
 }

}</source>





Customizing a JPasswordField Look and Feel

Property StringObject TypePasswordField.actionMapActionMapPasswordField.backgroundColorPasswordField.borderBorderPasswordField.caretAspectRatioNumberPasswordField.caretBlinkRateIntegerPasswordField.caretForegroundColorPasswordField.disabledBackgroundColorPasswordField.focusInputMapInputMapPasswordField.fontFontPasswordField.foregroundColorPasswordField.inactiveBackgroundColorPasswordField.inactiveForegroundColorPasswordField.keyBindingsKeyBinding[ ]PasswordField.marginInsetsPasswordField.selectionBackgroundColorPasswordField.selectionForegroundColorPasswordFieldUIString


Password field with key event

   <source lang="java">

import java.awt.BorderLayout; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JPasswordField; public class PasswordFieldEchoChar extends JFrame {

 public static void main(String[] args) {
   PasswordFieldEchoChar that = new PasswordFieldEchoChar();
   that.setVisible(true);
 }
 public PasswordFieldEchoChar() {
   setSize(450, 350);
   this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   getContentPane().add(new PasswordPanel(), BorderLayout.SOUTH);
 }

} class PasswordPanel extends JPanel {

 JPasswordField pwf;
 public PasswordPanel() {
   pwf = new JPasswordField(10);
   pwf.setEchoChar("#");
   add(pwf);
   pwf.addKeyListener(new KeyAdapter() {
     public void keyReleased(KeyEvent e) {
       System.out.println(new String(pwf.getPassword()));
     }
   });
 }

}</source>





Using Actions with Text Components: JPasswordField

   <source lang="java">

import java.util.Arrays; import java.util.ruparator; import javax.swing.Action; import javax.swing.JPasswordField; import javax.swing.text.JTextComponent; public class ListActionsJPasswordField {

 public static void main(String args[]) {
   JTextComponent component = new JPasswordField();
   // Process action list
   Action actions[] = component.getActions();
   // Define comparator to sort actions
   Comparator<Action> comparator = new Comparator<Action>() {
     public int compare(Action a1, Action a2) {
       String firstName = (String) a1.getValue(Action.NAME);
       String secondName = (String) a2.getValue(Action.NAME);
       return firstName.rupareTo(secondName);
     }
   };
   Arrays.sort(actions, comparator);
   int count = actions.length;
   System.out.println("Count: " + count);
   for (int i = 0; i < count; i++) {
     System.out.printf("%28s : %s\n",actions[i].getValue(Action.NAME),actions[i].getClass().getName());
   }
 }

}</source>



Count: 54
                        beep : javax.swing.text.DefaultEditorKit$BeepAction
              caret-backward : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
                 caret-begin : javax.swing.text.DefaultEditorKit$BeginAction
            caret-begin-line : javax.swing.text.DefaultEditorKit$BeginLineAction
       caret-begin-paragraph : javax.swing.text.DefaultEditorKit$BeginParagraphAction
            caret-begin-word : javax.swing.text.DefaultEditorKit$BeginWordAction
                  caret-down : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
                   caret-end : javax.swing.text.DefaultEditorKit$EndAction
              caret-end-line : javax.swing.text.DefaultEditorKit$EndLineAction
         caret-end-paragraph : javax.swing.text.DefaultEditorKit$EndParagraphAction
              caret-end-word : javax.swing.text.DefaultEditorKit$EndWordAction
               caret-forward : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
             caret-next-word : javax.swing.text.DefaultEditorKit$NextWordAction
         caret-previous-word : javax.swing.text.DefaultEditorKit$PreviousWordAction
                    caret-up : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
           copy-to-clipboard : javax.swing.text.DefaultEditorKit$CopyAction
            cut-to-clipboard : javax.swing.text.DefaultEditorKit$CutAction
               default-typed : javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction
                 delete-next : javax.swing.text.DefaultEditorKit$DeleteNextCharAction
             delete-previous : javax.swing.text.DefaultEditorKit$DeletePrevCharAction
                  dump-model : javax.swing.text.DefaultEditorKit$DumpModelAction
                insert-break : javax.swing.text.DefaultEditorKit$InsertBreakAction
              insert-content : javax.swing.text.DefaultEditorKit$InsertContentAction
                  insert-tab : javax.swing.text.DefaultEditorKit$InsertTabAction
         notify-field-accept : javax.swing.JTextField$NotifyAction
                   page-down : javax.swing.text.DefaultEditorKit$VerticalPageAction
                     page-up : javax.swing.text.DefaultEditorKit$VerticalPageAction
        paste-from-clipboard : javax.swing.text.DefaultEditorKit$PasteAction
                  select-all : javax.swing.text.DefaultEditorKit$SelectAllAction
                 select-line : javax.swing.text.DefaultEditorKit$SelectLineAction
            select-paragraph : javax.swing.text.DefaultEditorKit$SelectParagraphAction
                 select-word : javax.swing.text.DefaultEditorKit$SelectWordAction
          selection-backward : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
             selection-begin : javax.swing.text.DefaultEditorKit$BeginAction
        selection-begin-line : javax.swing.text.DefaultEditorKit$BeginLineAction
   selection-begin-paragraph : javax.swing.text.DefaultEditorKit$BeginParagraphAction
        selection-begin-word : javax.swing.text.DefaultEditorKit$BeginWordAction
              selection-down : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
               selection-end : javax.swing.text.DefaultEditorKit$EndAction
          selection-end-line : javax.swing.text.DefaultEditorKit$EndLineAction
     selection-end-paragraph : javax.swing.text.DefaultEditorKit$EndParagraphAction
          selection-end-word : javax.swing.text.DefaultEditorKit$EndWordAction
           selection-forward : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
         selection-next-word : javax.swing.text.DefaultEditorKit$NextWordAction
         selection-page-down : javax.swing.text.DefaultEditorKit$VerticalPageAction
         selection-page-left : javax.swing.text.DefaultEditorKit$PageAction
        selection-page-right : javax.swing.text.DefaultEditorKit$PageAction
           selection-page-up : javax.swing.text.DefaultEditorKit$VerticalPageAction
     selection-previous-word : javax.swing.text.DefaultEditorKit$PreviousWordAction
                selection-up : javax.swing.text.DefaultEditorKit$NextVisualPositionAction
               set-read-only : javax.swing.text.DefaultEditorKit$ReadOnlyAction
                set-writable : javax.swing.text.DefaultEditorKit$WritableAction
 toggle-componentOrientation : javax.swing.text.DefaultEditorKit$ToggleComponentOrientationAction
                    unselect : javax.swing.text.DefaultEditorKit$UnselectAction


Using JPasswordField

   <source lang="java">

import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JTextField; import javax.swing.SwingConstants; public class JPasswordFieldTest extends JFrame {

 public static void main(String[] args) {
   JFrame.setDefaultLookAndFeelDecorated(true);
   JFrame frame = new JFrame();
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.setTitle("JTextField Test");
   frame.setLayout(new GridLayout(2, 2));
   JLabel label = new JLabel("User Name:", SwingConstants.RIGHT);
   JLabel label2 = new JLabel("Password:", SwingConstants.RIGHT);
   JTextField userNameField = new JTextField(20);
   JPasswordField passwordField = new JPasswordField();
   frame.add(label);
   frame.add(userNameField);
   frame.add(label2);
   frame.add(passwordField);
   frame.setSize(200, 70);
   frame.setVisible(true);
 }

}</source>