Register aktiviert bzw deaktiviert

Status
Nicht offen für weitere Antworten.
G

gast

Gast
Einen schönen guten Tag liebe Java-Werkler :)


Hab da ein Problem (bis hierhin wohl keine Überraschung)

Ich habe in Netbeans (5.0) eine Swing Oberfläche mit mehreren Registern erstellt. Das jTabbedPane1 (also das Ding das alle Register beinhaltet) hab ich bei setEnabled auf false gesetzt

Code:
jTabbedPane1.setEnabled(false);


Im ersten Tab ist die Anmeldung, dort möchte ich bei erfolgreicher Anmeldung dass alle Register wieder enabled, also dass diese angeklickt werden können.

Hier hab ich das eingestellt:

Code:
 public void loginStartseite(String pw, String benutzer) {
        
        try {                          
           // Abfrage zur übergabe der kundenNr an die NutzungsrechteGUI 
           sql = "select * FROM Anmeldung WHERE matrikelNr =" + "'" + benutzer + "'" + " AND passwort = " + "'" + pw + "'" + ";" ; 
            
            rs = einReader.query(sql);
           
            if(rs.next()){
                System.out.println( "OK"); 
                // TODO: öffne alle Reiter
                Dialogklassen.Start fg = new Dialogklassen.Start();
                fg.jTabbedPane1.setEnabled(true);   
            }   
            else {
                System.out.println("falsches PW!");    
                //TODO: mach nichts 
            }
         
            einReader.closeResult(rs);
        }
        catch (Exception e) {
            System.out.println("Fehler: " + e);
            e.printStackTrace();
        }

    }


Also erstelle ich ein neues Dialogobjekt, das dann setEnabled von TabbedPane wieder auf true setzen soll. Im Debugmodus springt er auch drauf, dennoch kann ich weiterhin die Reiter nicht auswählen, sprich sie sind weiter auf false... *schluchz*

Weiss jemand was ich da falsch mach??

Viele liebe Gruesse

Claudi
 

foobar

Top Contributor
Hmm, mir sind die Zusammenhänge in deinem Programm zwar nicht klar, aber ich glaube du veränderst den Zustand der falschen Komponente.

Warum erstellst du ein neues JTabbedPane? Du hast doch schon eins, dessen visible-Property du verändern willst. Du mußt in der loginStartseite direkt auf das TabebPane zugreifen und setVisible auf true setzen.
 
G

Guest

Gast
Ja da hast du Recht, aber ich weiss nicht wie ich das aktuelle jTabbedPane verändern kann...

ich hab ne Methode, die das PW prüft, wenn es ok war dann soll eben das aktuelle jTabbedPane auf enabled gesetzt werden, falls das PW falsch war eben nicht.. Aber wie greif ich nur auf das aktuelle zu??? Raff ich net :(
 

foobar

Top Contributor
Kann ich dir ohne Code auch nicht sagen. Du mußt der Klasse die die Methode loginStartseite enthält das JabbedPane übergeben. Ist doch ganz simpel.
 
G

Guest

Gast
Hallo, habs anders gelöst. Hier meine Lösung:

Code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
             
        DbHandler db = new DbHandler();
        
        String pw = jPasswordField1.getText();
        String matrikel = jTextField1.getText();
        
        db.loginStartseite(pw, matrikel);
        
        if (db.getStatusOK().equals("richtig")) {
            jTextField5.setText("Anmeldung erfolgreich!");
           this.jTabbedPane1.setEnabled(true);
            
        }
        else {
            jTextField5.setText("Anmeldung fehlgeschlagen!");
        }
   
    }


Da ist jetzt nur noch ein Problem. Ich möchte nicht das gesamte jTabbedPane freigeben, sondern nur ein einzelnes Register. Dafuer gibt es die Funktion setEnabledAt(int index, boolean)

Habs damit probiert, aber er gibt kein einzelnes Register frei. Ich konnte auch nirgends einen Hinweis finden wo dieser "index" hinterlegt ist, also welches Register welchen Index hat. Ich habe insgesamt 6 Register...


Ein anderer Ansatz war, zu versuchen die Register einzeln freizugeben..

[/code]
if (db.getStatusOK().equals("richtig")) {
jTextField5.setText("Anmeldung erfolgreich!");
this.Panel1.setEnabled(true);
this.Panel2.setEnabled(true);
Code:
Das macht er leider auch nicht :( 


Sorry falls ich verwirrt wirke, ich bins wirklich :(
 
G

Guest

Gast
Hallo nochmal,

also nicht weiter rumsuchen, ich habs endlich hinbekommen :)


Aber eine letzte Frage muss dann doch noch sein:

Ich gebe mein Passwort in Register1 ein. Ist es korrekt sperrt er Register1 und "enabled" Register2. Das funktioniert soweit. Jetzt aber hätte ich gern das er automatisch (nach korrekter Passwort Eingabe) in das Register2 springt. Hab schon nach Funktionen gesucht, leider aber keine gefunden... irgendeine setActivated oder so... gibts das??


Danke das ihr so einer Nervensäge wie mir helft :roll:
 

foobar

Top Contributor
Entweder über den Index: http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JTabbedPane.html#setSelectedIndex(int)

oder über das Panel selber:

http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JTabbedPane.html#setSelectedComponent(java.awt.Component)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben