Как реализовать пароль, который пользователи могут изменить в другом окне в Java SwingJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как реализовать пароль, который пользователи могут изменить в другом окне в Java Swing

Сообщение Anonymous »

Программа, которую я разрабатываю, позволяет пользователям менять пароль администратора ТОЛЬКО ПОСЛЕ ввода текущего пароля администратора в поле пароля в классе setupModeLock ниже. Однако пароль никогда не сохраняется в переменной setupModeLock pWord

Код: Выделить всё

import javax.swing.*;
import java.awt.event.*;
public class setupModeLock {
private static int pWord;
public final JFrame miniScreen;
setupModeLock() {
miniScreen = new JFrame("Setup Mode");
final JLabel info = new JLabel("Please enter an admin password");
final JPasswordField adminField = new JPasswordField();
final JLabel result = new JLabel("");
info.setBounds(120, 300, 200, 30);
adminField.setBounds(120, 325, 200, 30);
result.setBounds(200, 325, 400, 30);
miniScreen.add(info);
miniScreen.add(adminField);
miniScreen.add(result);
adminField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent code) {
String password = new String(adminField.getPassword());
try {
int val = Integer.parseInt(password);
if(val == pWord)
{
miniScreen.dispose();
new setUpMode()
}
else
{
adminField.setText("");
result.setText("Incorrect Password");
}
} catch (Exception e) {
adminField.setText("");
result.setText("Invalid Password");
}
}
});
miniScreen.setSize(780,700);
miniScreen.setVisible(true);
miniScreen.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public static void changePassword(int newPass)
{
pWord = newPass;
}
public static int getPword()
{
return pWord;
}
}
Следующий класс фактически отображает кнопку, которая меняет пароль

Код: Выделить всё

import javax.swing.*;
import java.awt.event.*;
public class setUpMode extends setupModeLock{
public JFrame window;
setUpMode() {
super();
miniScreen.dispose();
window = new JFrame();
window.setAlwaysOnTop(true);
JButton modPassword = new JButton("Change Admin Password");
modPassword.setBounds(1000, 800, 300, 30);
window.add(modPassword);
modPassword.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent c) {
new PasswordChanger();
}
});
}
}
В классе PasswordChanger пользователь вводит пароль в поле PasswordField, а затем использует унаследованный методchangePassword для изменения пароля в setUpModeLock

Код: Выделить всё

import javax.swing.*;
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class PasswordChanger extends setupModeLock implements ActionListener {
JPasswordField thisField;
JLabel success;
Container container;
CardLayout cardlayout;

PasswordChanger() {
super();
miniScreen.dispose();
JFrame newPlace = new JFrame("Change Password");
container = newPlace.getContentPane();
cardlayout = new CardLayout();
container.setLayout(cardlayout);
success = new JLabel("");
thisField = new JPasswordField();
thisField.addActionListener(this);
container.add("a", thisField);
container.add("b", success);
newPlace.setSize(300,100);
newPlace.setVisible(true);
newPlace.setLocationRelativeTo(null);
newPlace.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
public void actionPerformed(ActionEvent bro) {
val = new String(thisField.getPassword());
try
{
int pCode = Integer.parseInt(val);
changePassword(pCode);
success.setText("Password successfuly save. Exit now");
} catch(Exception e) {
success.setText("Faulty Password type.  Exit and try again");
}
cardlayout.next(container);
}
}
Но после его запуска в режиме настройки не появляется даже кнопка «Изменить пароль».
Я пробовал наследовать несколько классов, но мой пароль всегда остается 0. Что я могу сделать, чтобы изменить пароль в setUpModeLock, чтобы любой вызов ChangePassword() делал новый пароль константой во всех подклассах.

Подробнее здесь: https://stackoverflow.com/questions/784 ... in-java-sw
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»