Java Tutorial/Swing/JPasswordField
Содержание
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>