Hallo,
ich programmiere gerade eine Applet mit Java Swing. Doch irgendwie komme ich damit nicht so richtig klar bzw. denke ich, dass ich das vll. ein bisschen
falsch anwende.
Hier mal meine Main.java:
Hier die Klasse LoginMenu.java:
Ich möchte also nach dem Login ein anderes Panel einblenden und so weiter. Beim LOgin muss später allerdings auch noch eine Socket Verbindung (zum abgleich
der Logindaten) ausgeführt werden.
Also irgendwie ist das alles ein bisschen komisch oder?
Wie mache ich das vll. besser um später (wenndas Programm noch komplexer wird) wirklich gut und flexibel mit eingegebenen Daten umgehen kann.
Danke schonmal.
ich programmiere gerade eine Applet mit Java Swing. Doch irgendwie komme ich damit nicht so richtig klar bzw. denke ich, dass ich das vll. ein bisschen
falsch anwende.
Hier mal meine Main.java:
Code:
public class Main extends javax.swing.JApplet {
private static final long serialVersionUID = 1L;
public void init() {
// Startet den Thread
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
// Variablen
public int status = 0;
// Objekte
LoginMenu loginMenu = new LoginMenu();
AdminMenu adminMenu = new AdminMenu();
// Methoden
public void setStatus(int stat){
status = stat;
}
private void initComponents() {
setLayout(null);
setSize(640,480);
if(status == 0){
getContentPane().add(loginMenu.maleLogin());
status = loginMenu.getStatus();
}
if(status == 1){
getContentPane().add(adminMenu.maleAdminMenu());
}
}
}
Hier die Klasse LoginMenu.java:
Code:
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginMenu{
private static final long serialVersionUID = 1L;
// Variabeln deklaration
JPanel pLogin; // Panel Login
JButton bLogin; // Button Login
JLabel tPassword; // Text Password
JLabel tUsername; // Text Username
JLabel tUeberschrift; // Text Überschrift
JTextField ePassword; // Eingabefeld Password
JTextField eUsername; // Eingabefeld Username
int status = 1;
// Methoden
public int getStatus(){
return status;
}
public JPanel maleLogin() {
// Variabeln initialisieren
pLogin = new JPanel();
bLogin = new JButton();
ePassword = new JPasswordField();
eUsername = new JTextField();
tPassword = new JLabel();
tUsername = new JLabel();
tUeberschrift = new JLabel();
// Login Panel
pLogin.setMinimumSize(new java.awt.Dimension(640, 480));
pLogin.setBounds(0, 0, 640, 480);
pLogin.setLayout(null);
// Text Passwort
tPassword.setFont(new java.awt.Font("Tahoma", 1, 11));
tPassword.setBounds(230, 230, 120, 14);
tPassword.setText("Password");
pLogin.add(tPassword);
// Text Username
tUsername.setFont(new java.awt.Font("Tahoma", 1, 11));
tUsername.setBounds(230, 180, 120, 14);
tUsername.setText("Username");
pLogin.add(tUsername);
// Text Ueberschrift
tUeberschrift.setFont(new java.awt.Font("Tahoma", 1, 14));
tUeberschrift.setBounds(230, 140, 200, 14);
tUeberschrift.setText("Train-Control Main Menu");
pLogin.add(tUeberschrift);
// Button Login
bLogin.setBounds(270, 290, 73, 23);
bLogin.setText("Login");
pLogin.add(bLogin);
// Eingabefeld Passwort
ePassword.setBounds(230, 250, 170, 20);
pLogin.add(ePassword);
// Eingabefeld Username
eUsername.setBounds(230, 200, 170, 20);
pLogin.add(eUsername);
// Action Listener für den Login Button
bLogin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
bLogin(evt);
}
});
return pLogin;
}
// Methode die nach dem druecken des Login Buttons ausgefuehrt wird
private void bLogin(java.awt.event.ActionEvent evt) {
pLogin.setVisible(false);
}
}
Ich möchte also nach dem Login ein anderes Panel einblenden und so weiter. Beim LOgin muss später allerdings auch noch eine Socket Verbindung (zum abgleich
der Logindaten) ausgeführt werden.
Also irgendwie ist das alles ein bisschen komisch oder?
Wie mache ich das vll. besser um später (wenndas Programm noch komplexer wird) wirklich gut und flexibel mit eingegebenen Daten umgehen kann.
Danke schonmal.