📄 passwordinputeditor.java
字号:
package elegate.cn.edu.nju;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/**
* a simple password input dialog
* @author Elegate,elegate@gmail.com
* @author cs department of NJU
*/
public class PasswordInputEditor extends JDialog
{
public static void main(String[] args)
{
JOptionPane.showInputDialog(null,"Input whatever you like here asldfja;lskjdasl;kdfjaslkjdfalk;sjdf","Test",JOptionPane.PLAIN_MESSAGE);
}
/**
*
*/
private static final long serialVersionUID = 1L;
private JPasswordField pswField;
private JButton btnOk;
private JButton btnCancel;
private char[] password;
public PasswordInputEditor(String title,String msg)
{
setTitle(title);
setModal(true);
JLabel lblInput=new JLabel(msg);
lblInput.setHorizontalTextPosition(SwingConstants.LEFT);
pswField=new JPasswordField(25);
pswField.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
btnOk.doClick();
}
});
btnOk=new JButton("Ok");
btnOk.setMnemonic('O');
btnOk.setToolTipText("Click to submit");
btnOk.addActionListener(new BtnOkL());
btnCancel=new JButton("Cancel");
btnCancel.setMnemonic('C');
btnCancel.setToolTipText("Click to cancel");
btnCancel.addActionListener(new BtnCancelL());
GridBagLayout gbLayout=new GridBagLayout();
GridBagConstraints gbCon=new GridBagConstraints();
JPanel panel=new JPanel();
panel.setLayout(gbLayout);
gbCon.fill=GridBagConstraints.HORIZONTAL;
this.addComponent(lblInput,0,0,2,1,gbCon,panel);
this.addComponent(pswField,0,1,1,1,gbCon,panel);
JPanel btnPanel=new JPanel();
btnPanel.add(btnOk);
btnPanel.add(btnCancel);
this.addComponent(btnPanel,0,2,2,1,gbCon,panel);
this.getContentPane().setLayout(new FlowLayout());
this.getContentPane().add(panel);
this.pack();
Dimension d=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((d.width-this.getWidth())/2
,(d.height-this.getHeight())/2);
this.getRootPane().setDefaultButton(btnOk);
}
private void addComponent(Component c,int gridx,int gridy
,int gridwidth,int gridheight,GridBagConstraints gbCon,JPanel panel)
{
gbCon.gridx=gridx;
gbCon.gridy=gridy;
gbCon.gridheight=gridheight;
gbCon.gridwidth=gridwidth;
panel.add(c,gbCon);
}
public char[] getPassword()
{
char[] tmp=this.password;
this.password=null;
return tmp;
}
class BtnOkL implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
password=pswField.getPassword();
setVisible(false);
}
}
class BtnCancelL implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
password=null;
setVisible(false);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -