Java Tutorial/Swing/JPasswordField
Содержание
Add action listener to JPasswordField
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();
}
}
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
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()));
}
});
}
}
Using Actions with Text Components: JPasswordField
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());
}
}
}
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
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);
}
}