Objectnamen neu setzen?

Network

Top Contributor
Hi Community,

kann man den Namen eine JButtons Beispielsweise im nachhinein ändern?

Bsp:
Code:
JButton jbAlpha = new JButton();
               ^
              Das soll geändert werden.

Denn:
Ich möchte 200 JTextfields untereinander setzen.
Das hab ich mit einer while-Schleife bewerkstelligt:
Java:
int c = 1;
while( c <= 200 )
{
           JTextField Hi = new JTextfield( 30 );
           panel1.add( Hi );
           c = c+1;
}

Wenn ich jetzt aber einen bestimmten JTextField den Wert auslesen will haperts, denn es gibt ja 200 JTextField s unter dem selben Namen.

Oder wenn ich z.B. in den 137. einen bestimmten Text schreiben will, geht das ja dann auch nicht.


Gibt es da irgendeine möglichkeit das zu bewerkstelligen?
(Ich hab keine Lust 200mal "JTextField Hi = new JTextfield( 30 );" zu kopieren und dann hinter jedem "hi" eine Zahl zu setzen.


Danke vielmals
 
Zuletzt bearbeitet von einem Moderator:

tfa

Top Contributor
Speichere deine Textfelder in einem Array oder einer Liste. Dann hast du jederzeit Zugriff auf jedes einzelne Feld.

Sind das wirklich 200? Klingt viel. Willst du Excel nachprogrammieren?
 

Network

Top Contributor
Speichere deine Textfelder in einem Array oder einer Liste. Dann hast du jederzeit Zugriff auf jedes einzelne Feld.

Sind das wirklich 200? Klingt viel. Willst du Excel nachprogrammieren?

Glaube kaum dass da 200 ausreichen ;)

Verstehen tu ich es leider auch nach der obigen Anleitung nicht, die Namen muss ich ja trotzdem eingeben:
{ "1", "2", "3", "4", "5" etc. }

Außerdem funktioniert das bei mir nicht recht,
ich kann "Java ist auch eine Insel" nicht leiden, der Schreiber kriegts nicht hin etwas leicht zu erklären oder Beispiele zu machen.


Ich hab jetzt das geschrieben:
Java:
JTextfield jtfDiplo[] = new JTextfield[] { "1", "2", "3", "4", "5", "6", "7" };

Das funktioniert wie erwartet nicht... öhm jaaaaa...
Ich bin immernoch ratlos.

Was ändert es denn, wenn ich die Objekte in eine Liste schreibe, wenn die Objekte keinen Einzelnamen haben. Da kann ich so oder so nicht darauf zugreifen?

Trotzdem vielen Dank für die jetzigen Antworten.
 

diel2001

Bekanntes Mitglied
Java:
JTextfield jtfDiplo[] = new JTextfield[] { new JTextField("1"), new JTextField("2"), new JTextField("3"), 
new JTextField("4"), new JTextField("5"), new JTextField("6"), new JTextField("7") };

So müsste das funktioniert

Du erstellst ein JTextField Array und willst dort Strings reinpacken,
dass kann nicht funktionieren
 
Zuletzt bearbeitet:
S

SlaterB

Gast
'Trotzdem' solltest du dir verkneifen bei so hochwertigen Tipps wie bisher, de hast sie nur noch nicht richtig verstanden ;)
in ein JTextfield-Array kannst du keine Strings reinschreiben, da brauchst du eine Schleife:

Java:
for (i ..) {
  array[i] = new JTextField(""+i);
}

edit:
und wenn man das Anlegen "new JTextfield[] { .." oder "new JTextField[5];" sieht, verstehe ich nie, warum jemand
> JTextfield jtfDiplo[] =
schreibt statt
> JTextfield[] jtfDiplo =
auch wenn beide Varianten erlaubt sind
 
Zuletzt bearbeitet von einem Moderator:

Network

Top Contributor
'Trotzdem' solltest du dir verkneifen bei so hochwertigen Tipps wie bisher, de hast sie nur noch nicht richtig verstanden ;)
in ein JTextfield-Array kannst du keine Strings reinschreiben, da brauchst du eine Schleife:

Ok, dass kommt darauf an, wie man es interpretiert ;)
-> Leider hab ich eure Antworten nicht verstanden, aber danke euch (trotzdem) schonmal für die ersten Antworten


Und, versteh mich nicht falsch, nur leider sieht man manchmal den Wald vor lauter Bäumen nicht.
Bzw. ich seh jetzt viel Baum...

(Nur damit mich alle hier klar verstehen, ich möchte fals möglich, mehreren Objekten in einer Schleife verschiedene Namen zuordnen, damit ich später nochmal darauf zugreifen kann)

Damit ich euch verstehe: Ich interpretiere das jetzt so, dass ihr versucht einen String Text in das neu erstellte JTextField zu schreiben(?)
Oder hab ich den Code falsch verstanden?

Und: Die Namen müssen auch aufgelistet werden oder? Also ich kann nicht in einer while/for-Schleife, die Namen der erstellten Ojekte aufzählen.
Bsp:
Java:
int C = 0
while()
{
        JTextField Hi+C = new JTextField( 30 );
        C = C+1;
}

Schonmal Danke an alle wieder :)
 
T

Tomate_Salat

Gast
Erkläre mal, was du genau vorhast:
  • Wozu dienen die Textfelder
  • gibt es eine Auswertung
  • wenn ja: wie willst du das ganze auswerten
Möglicherweise gibt es einen eleganteren Weg das zu lösen.
 
S

SlaterB

Gast
Damit ich euch verstehe: Ich interpretiere das jetzt so, dass ihr versucht einen String Text in das neu erstellte JTextField zu schreiben(?)
Oder hab ich den Code falsch verstanden?
was in dem JTextField drinsteht ist fast nebensächlich, könnte auch erstmal leer sein,
in jedem Fall ist das nur ein String, den man beliebig zusammensetzen kann, im Gegensatz zu Variablennamen

Java:
        JTextField Hi+C = new JTextField( 30 );
keine zusammengesetzten Variablennamen, es geht nur ein Array, siehe meinen ersten Link ganz zu Beginn
 

Network

Top Contributor
Erkläre mal, was du genau vorhast. Möglicherweise gibt es einen eleganteren Weg das zu lösen.

Ich erkläre es am besten mal mit "JCheckBoxes", die sind ziemlich unparteiisch zu erklären.

Ich möchte Beispielsweise 100 JCheckBoxes in ein JPanel setzen!
Damit man nicht 100x
Java:
"JCheckBox J1 = new JCheckBox();"
"JCheckBox J2 = new JCheckBox();"
"JCheckBox J3 = new JCheckBox();"
"JCheckBox J4 = new JCheckBox();"
"JCheckBox J5 = new JCheckBox();"
"JCheckBox J6 = new JCheckBox();"
etc.

schreiben muss, hab ich mir gedacht, man setzt die "JCheckBoxes" in einer while-Schleife
Java:
int C = 0;
while( C < 100 )
{
JCheckBox Jay = new JCheckBox();
...

JEDOCH: Bekommt ja jede JCheckBox dann den selben Namen "Jay"
Also kann man nicht prüfen ob eine bestimmte Checkbox jetzt selected oder deselected ist.
Also ob ein Häckchen reingesetzt wurde oder nicht.

Das ist das Problem
(Mit Checkboxes jetzt erklärt...)
 

Hemme

Mitglied
Dann kannst du ja ein Array machen und dann entsprechend ausfüllen.

[JAVA=42]

JCheckBox[] jay = new JCheckBox(100);
int i = 0;

while (i < 100) {

jay = new JCheckBox();
i++;
}

[/code]

edit: Ich denke die Variante mit der List ist eleganter.
 
Zuletzt bearbeitet:
G

Gast2

Gast
Java:
List<JCheckbox> liste = new ArrayList<JCheckbox>();
for (int i = 0; i < 100; i++) {
    liste.add(new JCheckbox());
}

Prüfen ob die x-te Checkbox selected ist:
Java:
liste.get(x).isSelected();

So hast du über den Index der Liste Zugriff auf jede Checkbox.
 

Network

Top Contributor
Ahh Dankeschön, also werden nicht alle Objekte unter dem selben Namen ("gespeichert") obwohl es der selbe Name ist, bzw. der selbe Rufname, sondern die unterscheiden sich in einer, für den Nutzer unsichtbaren Art?

Also Beispiel im echten Leben wie ich das jetzt verstanden habe:
-Man ruft nach "rotes Auto", und auf diesen Namen hören 2 verfügbare "rote Autos"
-und man kann jetzt nach dem "2. roten Auto", also das hintere oder nach dem "1. roten Auto" fragen.
Und das setzt man in gewisserweise in Java mit einer List um?

Danke

//Edit: @tfa: Jetzt sehe ich auch was du meintest :)
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Ich glaub wir drehen uns grad im Kreis.

Ja, spätestens wenn wir alles im javax.swing-package durchhaben. Welche Komponente du als Beispiel nimmst ist mir egal. Ich will wissen, wie deine Auswertung später aussehen soll, wenn es eine gibt...

Edit evtl. solltest du dir nochmal die Grundlagen anschauen. Was Listen/Arrays/Sets/valide Variablennamen... sind sollte man schon wissen. Stell die GUI-Programmierung erstmal zurück, bis du die Grundlagen drauf hast.
 
Zuletzt bearbeitet von einem Moderator:

ARadauer

Top Contributor
Du willst deine Objekte anhand eines Names ansprechen? -> Hashmap!


das bei den <> ist 1. die art des Schlüssels = string, und 2. was du rein geben willst zb JTextFeld...

Java:
public static void main(String[] args) {
      
      HashMap<String, JTextField> meineFelder = new HashMap<String, JTextField>();
      
      meineFelder.put("bier", new JTextField("Bier?"));
      meineFelder.put("wein", new JTextField("Wein?"));
      
      //und noch ein paar
      for(int i =0; i < 10; i++){
         meineFelder.put("feld"+i, new JTextField("Ja das ist dad Feld"+i));
      }
      
      //so drauf zugreifen
      System.out.println(meineFelder.get("bier").getText());
      
      System.out.println(meineFelder.get("feld3").getText());
      
      if(meineFelder.get("blaibald")== null){
         System.out.println("blaibald gits nicht!!!!!!!!!!");
      }
   }
 

Network

Top Contributor
Ja, spätestens wenn wir alles im javax.swing-package durchhaben. Welche Komponente du als Beispiel nimmst ist mir egal. Ich will wissen, wie deine Auswertung später aussehen soll, wenn es eine gibt...

Java:
	public void actionPerformed( ActionEvent evt)
	{
		if ( evt.getActionCommand().equals( "Ok" ) )
	        {
	            ...
	            String Zeile6 = [JTextField nummer 6].getText();
	            list.add( Zeile6 )
	            ...
	            if( Zeile6.startsWith("    ") System.out.println( "In Textfeld Nummer 6 wurde ein Problem festgestellt.")
 
T

Tomate_Salat

Gast
@ARadauer: 200 Feldern einen individuellen Namen geben?! Ja viel Spaß
@Network: wenn du Validierungen vornehmen willst, dann mache es wie EikeB gesagt hat mit einer Liste:
[Java]import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import javax.swing.JTextField;


public class MyCheck
{
public static void main(String[] args)
{
Random rnd = new Random();
List<JTextField> demo = new ArrayList<JTextField>();

for(int i=0; i < 200; i++) {
JTextField f = new JTextField("zahl: " + rnd.nextInt(10));
f.setLocation(i+10, 10);
demo.add(f);
}

int anz = 0;

for(JTextField f : demo) {
if(f.getText().equals("zahl: 4")) {
anz++;
System.out.println("Textfield an position: " + f.getX() + "|10 hat den Wert 4");
}
}

System.out.println("Anzahl an Textfeldern mit Wert 4: " + anz);
}
}[/code]
 

Network

Top Contributor
Ok,

fehlt nurnoch eine Kleinigkeit:
C:\Users\Zugriff verweigert\Desktop\Java DDS SAP\Karteneditor\DDSSAPR.java:955: cannot find symbol
symbol : class JCheckbox
location: class ButtonDemo
java.util.List<JCheckbox> liste = new ArrayList<JCheckbox>();
^ ^



C:\Users\Zugriff verweigert\Desktop\Java DDS SAP\Karteneditor\DDSSAPR.java:959: cannot find symbol
symbol : class JCheckbox
location: class ButtonDemo
liste.add(new JCheckbox());

^
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Anker Punkt setzen. Java Basics - Anfänger-Themen 1
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
H Ein übergegebenes Objekt auf null setzen Java Basics - Anfänger-Themen 9
B Semaphoren in Abhängigkeit an Bedingungen richtig setzen Java Basics - Anfänger-Themen 3
L Methode in setText() setzen Java Basics - Anfänger-Themen 6
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
S NIO lesbares und beschreibbares Attribut setzen Java Basics - Anfänger-Themen 1
C Array-Eintrag wieder auf Null setzen Java Basics - Anfänger-Themen 3
D Abstrakte Klasse, Konstruktorkette, Attribute setzen Java Basics - Anfänger-Themen 12
D Best Practice Konvention - Klassenmembers auf null setzen? Java Basics - Anfänger-Themen 2
F In Eclipse Haltepunkt bei Event setzen? Java Basics - Anfänger-Themen 1
das_leon JOptionPane Titel setzen Java Basics - Anfänger-Themen 1
P Cursor in JTextField setzen Java Basics - Anfänger-Themen 11
N wert für progress auf 100% setzen Java Basics - Anfänger-Themen 5
M Binären Baum Kinder setzen Java Basics - Anfänger-Themen 12
F Koordinaten nach 360° auf 0° setzen Java Basics - Anfänger-Themen 2
I Prozessname setzen Java Basics - Anfänger-Themen 8
S Das Anführungszeichen(") Zeichen in einen String setzen Java Basics - Anfänger-Themen 1
R Property Value als null setzen Java Basics - Anfänger-Themen 1
C Klassen Positionszähler auf Buchstaben setzen Java Basics - Anfänger-Themen 14
M Umgebungsvariable JDK/JRE? PATH setzen Java Basics - Anfänger-Themen 5
N Server Zeit zur lokalen Zeit setzen. Java Basics - Anfänger-Themen 0
S Classpath Findet die Klasse nicht classpath setzen? Java Basics - Anfänger-Themen 8
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
I Date zu 01.01.<year> setzen Java Basics - Anfänger-Themen 1
M zufälliges Setzen von Schiffen in while klappt nicht immer Java Basics - Anfänger-Themen 3
C [Greasmonkey] Maus Coursor position setzen Java Basics - Anfänger-Themen 1
K Selbst renderndes Object auf null setzen Java Basics - Anfänger-Themen 1
M Umgebungsvariable JFileChooser#setCurrentDirectory via Properties setzen? Java Basics - Anfänger-Themen 5
M Wann PATH und wann JAVA_HOME in Windows System 7 setzen? Java Basics - Anfänger-Themen 2
M Die Breite bei der Gui richtig setzen. Java Basics - Anfänger-Themen 1
X Vererbung Setzen auf Null bei Subklassen Java Basics - Anfänger-Themen 2
N Fokus setzen nachdem JFrame in Vordergrund geholt wurde Java Basics - Anfänger-Themen 7
I Variablen Wie initialisiert man in Java eine Variable ohne das Setzen von 0 oder einer anderen Zahl? Java Basics - Anfänger-Themen 8
H JPanel Hintergrund transparent setzen? Java Basics - Anfänger-Themen 10
R Classpath Setzen von class Verzeichnissen Java Basics - Anfänger-Themen 2
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
Ernesto95 BufferedImage Teilbereich wieder transparent setzen Java Basics - Anfänger-Themen 16
Jagson Dotcom Spiel - Dots Random setzen Java Basics - Anfänger-Themen 8
S Ermitteln und Setzen der Attribute eines Objektes Java Basics - Anfänger-Themen 6
N Erste Schritte Tausender Trennzeichen setzen Java Basics - Anfänger-Themen 5
J JRadioButton in JTable setzen Java Basics - Anfänger-Themen 4
A JLabel erst auf null dann auf einen Wert setzen Java Basics - Anfänger-Themen 7
H Panel in Variable setzen möglich? Java Basics - Anfänger-Themen 10
Helgon Focus setzen Java Basics - Anfänger-Themen 6
E Erste Schritte AbstractTableModel Werte setzen mit setValueAt Java Basics - Anfänger-Themen 10
B eclipse Oberfläche zurück setzen Java Basics - Anfänger-Themen 2
C Leerzeichen im char Array setzen Java Basics - Anfänger-Themen 33
L Methoden In einer Klasse ein Attribut aus einer anderen Klasse setzen Java Basics - Anfänger-Themen 8
M TableColumn Breite setzen Java Basics - Anfänger-Themen 9
M Monat setzen Java Basics - Anfänger-Themen 18
Fab1 Buttons auf ein Hintergrundbild(JFrame) setzen Java Basics - Anfänger-Themen 24
U Passwort auf JButton setzen. Java Basics - Anfänger-Themen 2
M JAVA_HOME setzen xubuntu Java Basics - Anfänger-Themen 2
S Input/Output Neuen InputStream System.in setzen Java Basics - Anfänger-Themen 11
K JTable AbstractTableModel Header setzen Java Basics - Anfänger-Themen 6
L Applet: Parameter setzen Java Basics - Anfänger-Themen 12
M Image Metadaten setzen Java Basics - Anfänger-Themen 2
M HttpPut mimeType setzen Java Basics - Anfänger-Themen 2
E Titel und Größe vom JFrame setzen Java Basics - Anfänger-Themen 6
Z Fokus auf anderes Programm setzen Java Basics - Anfänger-Themen 3
S import - Anweisung; Setzen der Classpath Java Basics - Anfänger-Themen 2
G Verzeiflung bei JDateChooser Datum setzen Java Basics - Anfänger-Themen 3
J Elegante Art mehrere Label mit einem icon zu setzen Java Basics - Anfänger-Themen 13
J JAVA_HOME und path setzen bei windows 7 Java Basics - Anfänger-Themen 5
radiac Datentypen RANDOM-punkt setzen INNERHALB eines BEREICHes Java Basics - Anfänger-Themen 2
D Classpath setzen Java Basics - Anfänger-Themen 4
W Koordinaten mit System.in.read() setzen Java Basics - Anfänger-Themen 2
J jComboBox auf default setzen wie? Java Basics - Anfänger-Themen 3
C Schach(matt) setzen Java Basics - Anfänger-Themen 13
D JFrame Icon setzen? Java Basics - Anfänger-Themen 8
L Lucene Classpath unter linux setzen Java Basics - Anfänger-Themen 8
H Farbe setzen Java Basics - Anfänger-Themen 5
J Klassen richtig in Relation setzen Java Basics - Anfänger-Themen 3
B Classpath setzen - UNTER MAC OS X Java Basics - Anfänger-Themen 2
R jLabel lässt sich nicht public setzen?? Java Basics - Anfänger-Themen 15
S JRadioButton - Wert setzen aus Datenbank Java Basics - Anfänger-Themen 4
N Exception richtig setzen Java Basics - Anfänger-Themen 2
S Schleife und farbwerte setzen Java Basics - Anfänger-Themen 8
S setrgb () setzen von farbwerte Java Basics - Anfänger-Themen 4
R Enum und dann setter Setzen? Java Basics - Anfänger-Themen 44
S Pixel auf Screen setzen Java Basics - Anfänger-Themen 4
J Dateipfade systemunabhängig setzen Java Basics - Anfänger-Themen 3
F JAVA_HOME automatisch setzen? Java Basics - Anfänger-Themen 2
M Offenes JFrame auf visible setzen? Java Basics - Anfänger-Themen 6
schroedi JAVA_HOME setzen unter Debian Java Basics - Anfänger-Themen 8
H Probleme, TableColumn-Breite zu setzen Java Basics - Anfänger-Themen 4
S log4j pfad per umgebungsvariable setzen? Java Basics - Anfänger-Themen 2
L Windows-Umgebungsvariablen mit Java setzen? Java Basics - Anfänger-Themen 11
S BBCodes in einen String setzen Java Basics - Anfänger-Themen 7
G Plugins einbinden und Classpath setzen Java Basics - Anfänger-Themen 4
S bbcodes bei markierten text setzen Java Basics - Anfänger-Themen 2
M Daten in Tabelle setzen. Java Basics - Anfänger-Themen 6
F Scanner an den Zeilenanfang wieder setzen Java Basics - Anfänger-Themen 2
T Checkbox in jtable: boolean wert direkt setzen - wie? Java Basics - Anfänger-Themen 1
G Pfad zu java.exe setzen Java Basics - Anfänger-Themen 2
H Log4J Pfad setzen Java Basics - Anfänger-Themen 2
G Programm in der Ausgangszustand setzen Java Basics - Anfänger-Themen 2
G Umgebungsvariable aus Java Programm heraus setzen Java Basics - Anfänger-Themen 4
I System.setProperty relativ setzen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben