Witajcie, szukałem trochę po internecie i nie mogę znaleźć dobrego rozwiązania mojego problemu, a konkretnie jak zrobić kilka paneli z komponentami albo coś co będzie zmieniać wszystkie elementy w oknie po naciśnięciu przycisku.
Program ma działać tak że po przyciśnięciu przycisku w swingworkerze sprawdzana jest poprawność danych w bazie, aktualizacja danych w GUI itp. i jeśli są poprawne zalogowanie się do programu co przełączy zawartość okna na nową jednak nie mogę znaleźć rozwiązania które zachowuje działanie actionlistenera i odpowiedni sposób tworzy panele które można przełączać.
import java.awt.EventQueue;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingWorker;
public class ClientFrame extends JFrame implements ActionListener {
private JButton zalogujB;
private JButton rejestracjaB;
private JTextField loginTF;
private JPasswordField hasloPF;
public ClientFrame() {
super( "SPAW - Client" );
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(640, 480);
setLocation(50,50);
setLayout(new GridLayout(4, 1));
add(loginTF = new JTextField());
add(hasloPF = new JPasswordField());
add(zalogujB = new JButton("Zaloguj"));
add(rejestracjaB = new JButton("Rejestracja"));
zalogujB.addActionListener(this);
rejestracjaB.addActionListener(this);
setSize(640, 480);
setLocation(50,50);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == zalogujB){
start();
}
if(source == rejestracjaB){
start2();
}
}
private void start(){
SwingWorker <String, Void> worker = new SwingWorker <String, Void>(){
@Override
protected String doInBackground() throws Exception {
for(int i=0;i<10;i++){
Thread.sleep(100);
System.out.println(i);
}
return null;
}
protected void done() {
// TODO Auto-generated method stub
loginTF.setText("Gotowe");
}
};
worker.execute();
}
private void start2(){
SwingWorker <String, Void> worker2 = new SwingWorker <String, Void>(){
@Override
protected String doInBackground() throws Exception {
for(int i=0;i<10;i++){
Thread.sleep(100);
System.out.println(i);
}
return null;
}
protected void done() {
// TODO Auto-generated method stub
loginTF.setText("Gotowe2");
}
};
worker2.execute();
}
}