jawax.swing.passwordfield
Модератор: Duncon
-
- Сообщения: 60
- Зарегистрирован: 06 дек 2004, 10:46
- Откуда: Kyiv, Ukraine
- Контактная информация:
И снова здравствуйте!
Закинул на фрейм такой вот элемент как passwordfield
(при вводе пароля отображаются звездочки)
Как из него получить настоящий пароль????
При использовании вот такой конструкции
String login = jTextField1.getText();
char temppass[] = jPasswordField1.getPassword();
String pass = temppass.toString();
переменная pass вместо вводимого пароля получает полную чушь.
Закинул на фрейм такой вот элемент как passwordfield
(при вводе пароля отображаются звездочки)
Как из него получить настоящий пароль????
При использовании вот такой конструкции
String login = jTextField1.getText();
char temppass[] = jPasswordField1.getPassword();
String pass = temppass.toString();
переменная pass вместо вводимого пароля получает полную чушь.
-
- Сообщения: 1228
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
Ты вызываешь метод Object.toString(), который тип char[] унаследовал от java.lang.Object. Он возвращает адрес объекта в JVM.
У java.lang.String есть конструктор, котрый создает строчку из массива символов - дык надо использовать его
String pass = new String(temppass);
У java.lang.String есть конструктор, котрый создает строчку из массива символов - дык надо использовать его
String pass = new String(temppass);
2B OR NOT(2B) = FF
-
- Сообщения: 60
- Зарегистрирован: 06 дек 2004, 10:46
- Откуда: Kyiv, Ukraine
- Контактная информация:
Спасибо Absurd!
Теперь буду знать.
Я, правда уже понял, что дело в типах данных, и воспользовался старым дедовским методом:
String login = jTextField1.getText();
char temppass[] = jPasswordField1.getPassword();
String pass = "";
for(int i=0;i<temppass.length; i++) {
pass+=temppass;
}
Вот-с...
Теперь буду знать.
Я, правда уже понял, что дело в типах данных, и воспользовался старым дедовским методом:
String login = jTextField1.getText();
char temppass[] = jPasswordField1.getPassword();
String pass = "";
for(int i=0;i<temppass.length; i++) {
pass+=temppass;
}
Вот-с...
-
- Сообщения: 1228
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
Объекты типа java.lang.String неизменяемы (immutable).- А почему????? (я в этом деле новичек), переменная ведь одна....
поэтому
Код: Выделить всё
pass+=temppass[i];
2) Ссылка pass переназначается на этот новый объект
3) Старый объект остается лежать в куче, пока его не подберет сборщик мусора.
С точки зрения архитектуры это правильно - чем меньше двихущихся частей в системе, тем она надежнее.
2B OR NOT(2B) = FF