PasswordField用getPassword()方法调用后得到的东西输出,内容却与输入不一致是随机数,把它转换成字符串也不行。
JOptionPane.showMessageDialog怎么改变下边按钮上的字?能实现提示信息功能就行,只要一个“OK”按钮。
谢谢了!

解决方案 »

  1.   

    用getText呢?
    还有获得char以后 new String(); 这样转化成String的么?showMessageDialog方法中的int messageType 改为 JOptionPane.INFORMATION_MESSAGE
      

  2.   

    第一个问题:
      JPasswordField password = new JPasswordField();
      String s = new String(password.getPassword());
    这样获得的才不是乱码
      

  3.   

    使用showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue)就可以随便改按钮文字了。import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;public class Test extends JPanel { private JFrame frame = null;

    private JButton button = null;

    public Test() {
    frame = new JFrame("Test");
    frame.getContentPane().add(this);

    button = new JButton("Open OptionDialog");
    button.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent arg0) {
    openOptionDialog();
    }});

    this.add(button);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 200);
    frame.setVisible(true);
    }

    public void openOptionDialog(){
    String [] options = {"Yes", "No", "Cancel"};
    int r = JOptionPane.showOptionDialog(frame, "内容", "标题", JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]);
    System.out.println(r);
    } public static void main(String[] args) {
    new Test();
    }
    }
      

  4.   

    1、String passStr = String.valueOf(jPasswordField.getPassword());
    2、showOptionDialog
      

  5.   

    getText()也可以用的,但是由于其读取之后会读入内存的,故不安全的,介意用以下的方法
    getPassword()取得的是char[]数组的
    String pwd = new String(passwordfield.getPassword());这样就可以了,而且更安全