Dzień dobry!
Po kilku dniach nauki Javy, postanowiłem stworzyć prosty program. Miał on pozwalać na stworzenie konta, na którym przechowywane by były wiadomości. Login definiowałby jakie wiadomości mają zostać pokazane po wpisaniu go, a hasło pełniłoby funkcję zabezpieczenia. Udało mi się napisać cały interfejs użytkownika, podzielony na dwa okna (jedno do odczytywania wiadomości, a drugie do ich zapisywania). Problem pojawił się w momencie, gdy zacząłem próbować zaimplementować mechanikę, która by na taką operację zezwalała. Mam kilka suchych pomysłów na rozwiązanie problemu, ale przekraczają one moje umiejętności. Proszę o pomoc!
P.S. Korzystam z programy Eclipse. Proszę raczej o wytłumaczeniem niż o wklejenie gotowca (choć pewnie bez tego się nie obejdzie). Wklejam tutaj kod:
package konto;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
class Szyfrator extends JFrame implements ActionListener{
private PanelHasła panelHasła;
private JButton bOdszyfruj, bKonto;
private JTextField login, hasło;
private JLabel llogin, lhasło, wiad;
public Szyfrator(){
setSize(300,200);
setTitle("Szyfrator");
bOdszyfruj = new JButton("ODSZYFRUJ");
setLayout(null);
bOdszyfruj.setBounds(25, 130, 100, 20);
add(bOdszyfruj);
bOdszyfruj.addActionListener(this);
bKonto = new JButton("Stwórz");
setLayout(null);
bKonto.setBounds(155, 130, 100, 20);
add(bKonto);
bKonto.addActionListener(this);
login = new JTextField("");
login.setBounds(70, 25, 150, 20);
add(login);
hasło = new JTextField("");
hasło.setBounds(70, 65, 150, 20);
add(hasło);
llogin = new JLabel("login:");
llogin.setBounds(25, 23, 150, 20);
add(llogin);
lhasło = new JLabel("hasło:");
lhasło.setBounds(25, 63, 150, 20);
add(lhasło);
wiad = new JLabel("wiad:");
wiad.setBounds(25, 103, 150, 20);
add(wiad);
}
public static void main(String[] args) {
Szyfrator okienko = new Szyfrator();
okienko.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
okienko.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e)
{
Object źródło = e.getSource();
if (źródło==bKonto)
{
if(panelHasła==null){
panelHasła = new PanelHasła(this);
}
panelHasła.setVisible(true);
}
else if(źródło==bOdszyfruj)
{
// sprawdzenie Danych if true = pokaż inf
}
}
}
class PanelHasła extends JDialog implements ActionListener {
private JButton bOk, bAnuluj;
private JTextField login, hasło, wiadomość;
private JLabel llogin, lhasło, lwiad;
public PanelHasła(JFrame owner){
super(owner, "wprowadzania hasła", true);
setSize(300,200);
setLayout(null);
bOk = new JButton("OK");
bOk.setBounds(25, 130, 100, 20);
add(bOk);
bOk.addActionListener(this);
bAnuluj = new JButton("Anuluj");
bAnuluj.setBounds(155, 130, 100, 20);
add(bAnuluj);
bAnuluj.addActionListener(this);
login = new JTextField("");
login.setBounds(70, 10, 150, 20);
add(login);
hasło = new JTextField("");
hasło.setBounds(70, 50, 150, 20);
add(hasło);
wiadomość = new JTextField("");
wiadomość.setBounds(70, 90, 150, 20);
add(wiadomość);
llogin = new JLabel("login:");
llogin.setBounds(25, 8, 150, 20);
add(llogin);
lhasło = new JLabel("hasło:");
lhasło.setBounds(25, 48, 150, 20);
add(lhasło);
lwiad = new JLabel("wiad:");
lwiad.setBounds(25, 88, 150, 20);
add(lwiad);
}
public void actionPerformed(ActionEvent e) {
Object źródło = e.getSource();
if(źródło==bOk){
}
else if(źródło==bAnuluj){
}
setVisible(false);
}
}