GUI Masken leeren

Status
Nicht offen für weitere Antworten.

Cheefrocker

Bekanntes Mitglied
Hallo zusammen.

Ich entwickle grade eine Anwendung in der ich mehrere Reiterkarten habe. Wie kann ich jetzt die gesamte Reiterkarte(JPanel) mit alle Komponenten drauf zurücksetzen?

Zur Zeit ist es nicht schön gelöst. ich schreib mir alle komponenten die sich auf dem Panel für mich raus. Dann habe ich eine Methode die dann so ungefähr aussieht.

Code:
void leere_felder()
{

jTextfield1.setText("");
jTextfield1.setEnabled(false);
jTextfield2.setText("");
jTextfield3.setText("");

}

Kann man das nicht eleganter lösen? in dem man irgentwie automatisch alle komponenten auf jeden Jpanel(Reiterkarte) herausfindet und diese dynamisch zurücksetzt?

Desweiteren will ich z.b wenn ein Benutzer auf einem jPanel weiterklickt(Button) das dann alle Eingabefelder gesperrt werden. das ganze könnte ich wie oben machen. doch das scheint mri irgentwie total blöd zu sein.



Wie geht ihr bei solchen Entwicklungen vor?

Ich verwende Jbuilder zur Zeit. Arbeite mit JDK 1.4

[/code]
 

dieta

Top Contributor
Du könntest z.B. mit der getComponents()-Methode von java.awt.Container arbeiten. Dann musst du nur aufpassen, dass du die Components zu den richtigen Typen castest und so die richtigen Methoden aufrufst.
 
G

Gast

Gast
aber wie geht ihr bei solchen Entwicklungen vor?

wie geht ihr vor wenn eine Maske gesperrt sein soll jedoch noch angesehen werden darf. wie sieht es auch wenn man die maske
nachträglich geändert werden kann(z.b sowas in der art aktiveren und deaktivieren aller Felder).
 

manuche

Bekanntes Mitglied
Ich glaube das dass mehr umstand bringt als alles manuell zu bereinigen... Also aufpassen, wann was gecastet und gecleart werden soll... Lohnt denk ich nur bei vielen Componenten und einem guten Konzept...
 
G

Gast

Gast
was sind viele compononten???ß

Ich hab so ungefähr 10 Jpanels auf den jeweils ca 10-20 Jtextfelder drauf sind.

dann müssen ja noch ggf. jRadiobuttons etc noch mit gesäubert werden.
 

manuche

Bekanntes Mitglied
das würde für mich reiche.. xD
Also bei 5 komponenten hätte ich es stumpf von hand gesäubert!
Strategie:
- Du holst dir ein Array mit den zu säubernden Komponenten
- castest das auf den ersten Typ (z.b. JTextArea) und "säuberst" es mit den JTextArea-Methoden
- wenn klappt nächste Komponente
- wenns NICHT klappt zum nächsten möglichen Typ casten und mit dessen mehtoden "säubern"
- und so weiter bis alle typen abgedeckt sind
- schleife drum rum die solange läuft wie dein array lang ist und fertig
 
G

Guest

Gast
Ich hab mal folgendes Probiert:

Code:
   for(int i=0;i<jPanel_EMP.getComponentCount();i++)
   {
     System.out.println(jPanel_EMP.getComponent(i).getClass().getName());

   }


Ergebnis ist z.b:

javax.swing.JTextField

javax.swing.JTextField

javax.swing.JRadioButton

javax.swing.JRadioButton

javax.swing.JRadioButton

javax.swing.JLabel

javax.swing.JLabel

javax.swing.JLabel

com.borland.dbswing.JdbTextField




Kann ich nicht jetzt hingehen und den letzten Wert in eine Case-Strukut setzen um zu sagen in welchen Typ er casten soll?
 

manuche

Bekanntes Mitglied
Die Case Struktur ist nur für primitive Datentypen... also Character oder Integer!

Speicher die Komponenten in einem Object[] und dann beispielsweise so (auch wenn nicht wirklich elegant ist xD):
Code:
Object[] arr = xyz.getComponents();
for (int i = 0; int < arr.lengtz; x++){
  try{
    JTextField temp = (JTextField) Object[x];
    temp.setText("");
  }catch (ClassCastException e){
    try{
      //nächstes Möglichkeit
    }catch (ClassCastException e){
      //usw.
    }
  }
}
Habs jetzt aber nich getestet...

*edit:
Oder du machste es eleganter wie mir grad eingefallen ist:
Code:
Object[] arr = xyz.getComponents();
for (int i = 0; int < arr.lengtz; x++){
  Object temp = arr[x].
  if (temp instanceof JTextField){
    // säubern
  }else if (temp instance of JRadioButton){
    // säuber
  }//usw
}
 
G

Gast

Gast
Code:
   for(int i=9;i<jPanel_EMP.getComponentCount();i++)
   {
    String currentComponent = jPanel_EMP.getComponent(i).getClass().getName().substring(jPanel_EMP.getComponent(i).getClass().getName().lastIndexOf(".")+1,jPanel_EMP.getComponent(i).getClass().getName().length());

    if(currentComponent.equalsIgnoreCase("JTextField"))
    {
     ((JTextField)jPanel_EMP.getComponent(i)).setText("test");
    }//esle......

   }


was halst du(ihr) davon?
 
G

Gast

Gast
ein kleines Problem ist noch das ist JRadiobuttons nicht zurücksetzten kann.

Ich glaube hier muss ich der Buttongroup alle Jradiobutton entziehen

und neu hinzufügen.

oder kann man das irgentwie lösen???
 
G

Gast

Gast
oder
Code:
JTextField.class.isInstance(componente)
 
G

Gast

Gast
danke leute!!!!


aber wie kann ich nun das mti den jRadiobutton und der Buttongroup lösen??
 

dieta

Top Contributor
du kannst z.B. alle ButtonGroups in ein Array/HaschSet etc. speichern und dann das durchlaufen und die ButtonGroups säubern.
 

Verjigorm

Top Contributor
Gast hat gesagt.:
ein kleines Problem ist noch das ist JRadiobuttons nicht zurücksetzten kann.

Ich glaube hier muss ich der Buttongroup alle Jradiobutton entziehen

und neu hinzufügen.

oder kann man das irgentwie lösen???

ButtonGroup.clearSelection();

entweder von Hand oder wie mein Vorredner schon sagte die ButtonGroups in einem Array o.ä. ansammeln
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Buttons auf allen Masken Java Basics - Anfänger-Themen 4
O Unterschiedliche Masken Java Basics - Anfänger-Themen 7
D Laden und leeren von Comboboxen Java Basics - Anfänger-Themen 8
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
E Was ergibt trim() auf einen leeren String Java Basics - Anfänger-Themen 3
A Queue (Array) leeren Java Basics - Anfänger-Themen 1
S Erste Schritte Konsole leeren Java Basics - Anfänger-Themen 3
H Methoden "Leeren" Speicher auf der Festplatte überschreiben Java Basics - Anfänger-Themen 8
F Scanner + Stringbuilder geben leeren String aus wenn Umlaute enthalten sind Java Basics - Anfänger-Themen 29
S JFrame leeren Java Basics - Anfänger-Themen 6
B Ordner leeren/löschen Java Basics - Anfänger-Themen 5
S Input/Output einlesen aus einer evtl. leeren Datei Java Basics - Anfänger-Themen 5
T Konsole leeren? Java Basics - Anfänger-Themen 7
E Felder bei falscher Eingabe leeren Java Basics - Anfänger-Themen 8
A Datentypen Stringbuilder vollständig leeren Java Basics - Anfänger-Themen 6
Z GUI-Fenster leeren Java Basics - Anfänger-Themen 5
D Konsole leeren? Java Basics - Anfänger-Themen 5
S JTextField leeren ohne setText("")? Java Basics - Anfänger-Themen 3
L Problem damit, leeren String zurück zu geben Java Basics - Anfänger-Themen 16
M Kann kein Objekt (AudioFile in diesem Beispiel) für ein leeren String erzeugen Java Basics - Anfänger-Themen 3
J JTextfield mit Enter leeren Java Basics - Anfänger-Themen 3
Semox OOP ArrayList erlaubt keine Leeren Methode Java Basics - Anfänger-Themen 6
J Winzige Frage bezüglich leeren Zellen (HSSF) Java Basics - Anfänger-Themen 14
1 Icon Cache leeren Java Basics - Anfänger-Themen 10
M JTextField[] alle leeren Java Basics - Anfänger-Themen 4
M JTable sortieren ohne Berücksichtigung der leeren Zellen Java Basics - Anfänger-Themen 3
O Arbeit mit leeren Datensätzen / Objekten? Java Basics - Anfänger-Themen 5
J Tastatur-Puffer leeren Java Basics - Anfänger-Themen 3
G vector füllt sich immer weiter. wo muss ich ihn leeren? Java Basics - Anfänger-Themen 3
G Löschen durch Leeren Text einfügen? Java Basics - Anfänger-Themen 6
F Einer char-Variable "leeren" Inhalt zuweisen Java Basics - Anfänger-Themen 4
R GUI vollständig leeren Java Basics - Anfänger-Themen 10
G TXT leeren! Java Basics - Anfänger-Themen 6
S panel leeren Java Basics - Anfänger-Themen 2
G Beschreibung eines 'leeren' char-Wertes Java Basics - Anfänger-Themen 3
T Konsole leeren? Java Basics - Anfänger-Themen 5
J Textfeld beim anklicken leeren Java Basics - Anfänger-Themen 16
D Konsolenausgabe leeren Java Basics - Anfänger-Themen 16
EagleEye JTextArea leeren Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben