Auslesen eines Feldes und durch ; o.Ä. trennen

Creeep

Mitglied
Guten tag allerseits,

folgende Problemstellung:
ich habe ein JNumberField (lässt sich auch mit Textfield etc umtauschen falls nötig) und muss dort halt mehrere Zahlen eingeben können, das problem liegt darin, dass ich es nicht hinkriege durch ENTER die Zahlen in ein Array zu schreiben sondern nur durch einen Button, deshalb würde ich gerne eine lange Zahl eingeben können und diese durch Sonderzeichen (z.b. ";") trennen.
Wenn jemand mein Problem versteht hoffe ich auf schnelle Antwort

MfG Creeep
 

Creeep

Mitglied
Ich benutze JavaEditor zum Programmieren und da gibt es halt ein JNumberField welches man nutzen kann, aber wie gesagt kann ich dieses gerne austauschen.
Ich bin mir ziemlich sicher, dass Enter die schönere Lösung wäre nur leider bin ich daran verzweifelt das einzubauen, für Tipps & Links wäre ich sehr dankbar.
 

Dit_

Bekanntes Mitglied
JNumberField braucht einen ActionListener. Wenn du dann auf Enter drückstkannst du sagen:
Java:
@Override
        public void actionPerformed(ActionEvent e) {
            if(e.getSource().equals(myJNumberField)) {
                myButton.doClick();
                //oder halt was anderes
            }
}

oder halt was anderes, auf jeden Fall wenn JNumberField von JTextField erbt kannst du EnterAktion auf diese weise "Abfangen".
 
Zuletzt bearbeitet:

Creeep

Mitglied
Java:
@Override
        public void actionPerformed(ActionEvent e) {
            if(e.getSource().equals(myJNumberField)) {
                myButton.doClick();
                //oder halt was anderes
            }
}
oder halt was anderes, auf jeden Fall wenn JNumberField von JTextField erbt kannst du EnterAktion auf diese weise "Abfangen".

Ich übernehme diesen Code jetzt einfach mal und mache anstatt mein Numberfield jetzt ein JTextField rein, ist glaub ich allgemein besser verständlich.
Aber kann mir irgendjemand erklären WARUM
Code:
if(e.getSource().equals(myJNumberField)) {
den Tastendruck Enter abfängt? Wäre schon ganz praktisch zu wissen.

und jetzt gerade habe ich ein Problem mit dem speichern im Array entdeckt...
Java:
int n;
int[] a = new int[n];       //Array mit Daten


  public void zahleneingabe_ActionPerformed(ActionEvent evt) {
         if(evt.getSource().equals(zahleneingabe)){

         n++;
         a.getInt(zahleneingabe,n);
         }

  }

Wenn ich dabei auf kompilieren gehe wird mir immer folgender Fehler ausgespuckt:

Quicksort.java:109:11: cannot find symbol
symbol : method getInt(javax.swing.JTextField,int)
location: class int[]
a.getInt(zahleneingabe,n);
^
1 error


Und das obwohl laut API-Docs es für Arrays doch eigtl solch einen befehl gibt.

Ich danke im vorraus für Hilfe

MfG Creeep
 

AmunRa

Gesperrter Benutzer
Nein für Arrays gibt es diese Methode nicht, verlink mal bitte diese API docs in der das angeblich steht, die würd ich gerne sehen:lol:. Auf Arrays kannst du gar keine Methode anwenden.

Auf Arrays greift man mit den [] Klammern zu.
 

Creeep

Mitglied
Der gewollte Link, wahrscheinlich auch ein Verständnissfehler, ich bin nicht so gelernt im API-docs lesen.
Array (Java Platform SE 6)

Die Sache mit den [] Klammern weiß ich bereits, da wird der Index angegeben etc. nur wie setze ich dann ein, dass der Inhalt des JTextFields eingeschrieben wird?
Code:
a[n] = zahleneingabe.getText();
Würde mir jetzt Spontan einfallen aber das funktioniert ja nur bei String.
 

AmunRa

Gesperrter Benutzer
Du musst den String den du aus dem Textfeld bekommst. Zuerst in ein int umwandeln. dazu gibt es in der Klasse Integer die Methode parseInt(String nr);

Die Klasse Array die du da gefunden hast ist eine Klasse die für Reflection gebraucht wird, das ist hier also nicht nötig.
 

Creeep

Mitglied
Die Idee mit dem String in Int umschreiben is gut und gleich durchgeführt!

Nur funktioniert die Enter funktion nicht.
Zum Test habe ich ans Ende noch geschrieben das mein JTextField gesäubert werden muss um zu sehen falls er es annimmt.
Java:
public void zahleneingabe_ActionPerformed(ActionEvent evt) {
         if(evt.getSource().equals(zahleneingabe)){
         String zwischen;
         int t = 0;
         zwischen = zahleneingabe.getText();
         t = Integer.parseInt (zwischen);
         n++;
         a[n] = t;
         zahleneingabe.setText("");
         }
}
Also der Compiler gibt mir immerhin keine Errors

Falls es hilft kriege ich beim druck auf Enter auch noch ne ganze Stange an Errormeldungen:

Exception in thread "AWT-EventQueue-1" java.lang.ArrayIndexOutOfBoundsException: 22
at Quicksort.zahleneingabe_ActionPerformed(Quicksort.java:118)
at Quicksort$2.actionPerformed(Quicksort.java:64)
at javax.swing.JTextField.fireActionPerformed(JTextField.java:492)
at javax.swing.JTextField.postActionEvent(JTextField.java:705)
at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:820)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1639)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2851)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2886)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2814)
at java.awt.Component.processEvent(Component.java:6066)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4652)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1850)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:712)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:990)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:855)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:676)
at java.awt.Component.dispatchEventImpl(Component.java:4524)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4482)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644)
at java.awt.EventQueue.access$000(EventQueue.java:85)
at java.awt.EventQueue$1.run(EventQueue.java:603)
at java.awt.EventQueue$1.run(EventQueue.java:601)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:617)
at java.awt.EventQueue$2.run(EventQueue.java:615)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:614)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
 

2XS

Mitglied
Hi,

ich wundere mich, dass dieser Teil überhaupt funktioniert:

Java:
int n;
int[] a = new int[n];       //Array mit Daten

Wenn ich mich nicht total vertue muss doch zum Zeitpunkt der Arrayinitialisierung bereits die Größe feststehen (n braucht also bereits einen Wert != null). Und da man vor der Usereingabe meistens nicht weiß wie viele Werte kommen werden (und wenn ich den TO richtig verstanden habe steht hier auch vorher nicht fest wie viele Werte kommen werden) ist ein Array wohl nicht das Richtige.

Ich würde da eher zu ArrayList tendieren. Die kann man nämlich immer weiter vergrößern.


Grüße,

Andy


P.S.: Kann auch sein, dass ich nur BS geschrieben habe da ich mich gerade nach langer Abstinenz wieder in Java rein arbeite.
 

Creeep

Mitglied
Nunja ich dachte das man ein Array nachträglich erhöhen & initialisieren kann Tutorial / Java Grundlagen / Arrays hatte mir da die Idee dazu gegeben.

Auf Arraylist kann ich natürlich umsteigen aber mit denen hatte ich schonmal zu tun und ich erinnere mich dunkel an eine schlimme quälerei weshalb ich nur mit einer Array arbeiten wollte.
 

AmunRa

Gesperrter Benutzer
Wenn du am Anfang noch nicht weißt wie viele Elemente du speichern musst sind ArrayList die einzige brauchbare Möglichkeit für einen Anfänger.

Und eigentlich sind ArrayList nicht so schwer. wenn du probleme damit hast kannst du ja hier nachfragen
 

2XS

Mitglied
Finde ArrayList eigentlich ganz praktisch. Und mehr als folgende Befehle wirst Du für Dein Problem wahrscheinlich nicht brauchen.
Java:
// Importiert den nötigen Kram
import java.util.ArrayList;

// Erstellt eine neue ArrayList mit dem Namen liste und der Größe 3. Sie soll den Datentyp int speichern können. Wobei das wohl optional ist.
private ArrayList<int>	liste	= new ArrayList<int>(3);

// Pappt ein weiteres Element mit dem Wert 5 an die Liste
liste.add(5);

// Speichert den Wert des 3 (Auch bei ArrayLists beginnt der Index bei 0). Elements in test.
int test = liste.get(2);

// Sorgt dafür, dass genügend Platz für 5 Elemente vorhanden ist
liste.ensureCapacity(5);


Grüße,

Andy
 
T

Tomate_Salat

Gast
feststehen (n braucht also bereits einen Wert != null)..

primitive Datentypen können keinen Wert null haben. [c]n[/c] ist in diesem Falle einfach 0.

Zum Thema Array wurde ja eigentl. schon alles gesagt: es hat eine fixe Größe. Mit einer (Array)List fährst du hier auf jeden Fall.
 

Creeep

Mitglied
Ich habe jetzt soweit alles umgebaut das ich mit Arraylist anstatt Array arbeiten kann doch haben sich wie erwartet Probleme aufgetan.
Ich sage mal was mein Oberthema war, nämlich Quicksort!
und darin muss ich ein paar Vergleiche u.Ä. anstellen doch er spuckt mir da nur Errors aus.
Java:
Quicksort.java:71:10: size has private access in java.util.ArrayList
    n = a.size;
         ^
Quicksort.java:76:16: incompatible types
found   : java.lang.Object
required: int
  int t = a.get(i);
               ^
Quicksort.java:77:8: unexpected type
required: variable
found   : value
  a.get(i) = a.get(j);
       ^
Quicksort.java:78:8: unexpected type
required: variable
found   : value
  a.get(j) = t;
       ^
Quicksort.java:85:16: incompatible types
found   : java.lang.Object
required: int
  pivot = a.get((low+high)/2);
               ^
Quicksort.java:88:20: operator < cannot be applied to java.lang.Object,int
    while(a.get(i) < pivot) i++;
                   ^
Quicksort.java:89:20: operator < cannot be applied to java.lang.Object,int
    while(a.get(j) < pivot) j--;
                   ^
Quicksort.java:90:17: operator >= cannot be applied to java.lang.Object,java.lang.Object
    if(a.get(i) >= a.get(j)){
                ^
Quicksort.java:108:15: unexpected type
required: variable
found   : value
         a.get(n) = t;
              ^
9 errors
Das waren die Errors, jetzt kommt der Code wo die Fehler hauptsächlich auftreten:
Java:
 public void tauschen(){         // Methode zum Werte austauschen
  int t = a.get(i);
  a.get(i) = a.get(j);
  a.get(j) = t;
  }
  
  public void quicksort(int low,int high){     // Methode zum Sortieren der Daten

  i = low;
  j = high;
  pivot = a.get((low+high)/2);
  
  while(i<=j){
    while(a.get(i) < pivot) i++;
    while(a.get(j) < pivot) j--;
    if(a.get(i) >= a.get(j)){
    tauschen();
    i++;
    j--;
    }
  }
  }
 
T

Tomate_Salat

Gast
[c]a.get(i)=a.get(j);[/c]
nein. Mit a.get(int) bekommst du einen wert/ein Objekt zurück. Du kannst darüber keinen Eintrag in der Liste manipulieren. Schau dir mal set an.

zu deinem zweiten Fehler:
du hast wohl die ArrayList so initalisiert:
Java:
ArrayList liste=new ArrayList(); // damit lässt sich die Exception reproduzieren

richtig wäre aber:
Java:
ArrayList<Integer> liste=new ArrayList<Integer>();
 
Zuletzt bearbeitet von einem Moderator:

Creeep

Mitglied
Ich bedanke mich Tomate Salat somit wäre das Vertauschen schonmal erledigt =)
Nur bleibt das Problem mit dem Vergleichen immernoch offen ohne einen Vergleich läuft die gesamte Sortierung nicht.

@Crian: Einen Link oder Beispiel für vernünftiges Einrücken liefern wäre auch hilfreich. Und ein KSKB kann ich in diesem Stadium nur sehr schwer liefern.
 

Creeep

Mitglied
Es kann sein, dass es gemäß irgendetwas formatiert wird weshalb ich mich auch über eine beschwerrde wundere.
Immerhin jage ich den Code nicht ohne Abstände und ganz ohne Einrücken hier rein, im vergleich zu sowas ist es doch lesbar -.-
 

Creeep

Mitglied
[Java]
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.util.ArrayList;

/**
*
* Beschreibung
*
* @version 1.0 vom 17.04.2011
* @author
*/

public class Quicksort extends Applet {
// Anfang Attribute
//Graphische Attribute
private JTextField zahleneingabe = new JTextField();
private Checkbox kleiner_als = new Checkbox();
private Label infotext = new Label();
private JButton sort = new JButton();
// Ende Graphische Attribute
// Variablen
int pivot; //Trennelement
int i; //Linker Punkt
int j; //Rechter Punkt
int n; //Länge des Arrays
ArrayList a = new ArrayList(); //Array mit Daten
// Ende Variablen
// Ende Attribute

public void init() {
Panel cp = new Panel(null);
cp.setBounds(0, 0, 306, 458);
add(cp);
// Anfang Komponenten

kleiner_als.setBounds(40, 192, 153, 17);
kleiner_als.setLabel("Sortierung umkehren");
cp.add(kleiner_als);

infotext.setBounds(0, 144, 280, 32);
infotext.setText("Standartoption: von groß nach klein sortieren");
infotext.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
cp.add(infotext);

sort.setBounds(88, 104, 75, 25);
sort.setText("Sortieren");
sort.setMargin(new Insets(2, 2, 2, 2));
sort.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
sort_ActionPerformed(evt);
}
});
cp.add(sort);
zahleneingabe.setBounds(0, 32, 289, 24);
zahleneingabe.setText("");
zahleneingabe.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
zahleneingabe_ActionPerformed(evt);
}
});
cp.add(zahleneingabe);
// Ende Komponenten
}
// Anfang Methoden
//Buttonmethode
public void sort_ActionPerformed(ActionEvent evt) {
// TODO hier Quelltext einfügen
n = a.size;
quicksort(0,n-1);
}
//Selbstgebaute/Interne Methoden
public void tauschen(){ // Methode zum Werte austauschen
a.set(i,j);
}

public void quicksort(int low,int high){ // Methode zum Sortieren der Daten

i = low;
j = high;
pivot = a.get((low+high)/2);

while(i<=j){
while(a.get(i) < pivot) i++;
while(a.get(j) < pivot) j--;
if(a.get(i) >= a.get(j)){
tauschen();
i++;
j--;
}
}
}
public void zahleneingabe_ActionPerformed(ActionEvent evt) {
if(evt.getSource().equals(zahleneingabe)){
String zwischen;
int t = 0;
zwischen = zahleneingabe.getText();
try {
t = Integer.parseInt (zwischen);
} catch (Exception E){
//es war keine Zahl
}
n++;
a.get(n) = t;
zahleneingabe.setText("");
}
}
// Ende Methoden
}
[/code]
Wie gewünscht, hoffentlich ist der Code nicht ZU schrecklich....
 
T

Tomate_Salat

Gast
Erst einmal: http://www.java-forum.org/bilder-gui-damit-zusammenhaengt/4650-awt-swing-mischen.html
---
[java=29] ArrayList a = new ArrayList(); //Array mit Daten[/code]
Ich habe doch schon geschrieben, dass das "falsch" ist, schreibe hier:
[java=29] ArrayList<Integer> a = new ArrayList<Integer>(); //Array mit Daten[/code]
dann sollte es mit dem Vergleichen funktionieren (außer ich habe was auf die schnelle übersehen)

Anmerkung:
[java=29] ArrayList a = new ArrayList();[/code]
hier steht eigent.:
[java=29] ArrayList<Object> a = new ArrayList<Object>();[/code]
dieses [c]Object[/c] definiert, welche Typen in der Liste gespeichert werden sollen/dürfen. Deswegen muss in deinem Fall hier [c]Integer[/c] stehen. Dann bekommst du über die get-Methode auch wirklich Integer zurück (welche du ja erwartest)


Konventionen/Stil:
methoden/variablen lowerCamelCase schreiben:
[c]kleiner_als[/c]=>[c]kleinerAls[/c]
[c]sort_ActionPerformed(...)[/c]=>[c]sortActionPerformed(...)[/c]

und über sinnvolle benamungen nachdenken.

War mal ein schneller Blick drüber.
 
Zuletzt bearbeitet von einem Moderator:

faetzminator

Gesperrter Benutzer
Auch
Java:
ArrayList<Integer> a = new ArrayList<Integer>();
finde ich nicht sonderlich hübsch. Für was gibts das Interface [c]List[/c]?
Java:
List<Integer> a = new ArrayList<Integer>();
 

Creeep

Mitglied
guuut, das waren ja jetzt sehr viele gut gemeinte Ratschläge :)

@Tomate Salat:
Das eine neue ArrayList automatisch Object nimmt wusste ich nicht, ich habe es mit <int> probiert es hat nicht geklappt und ich hab geglaubt es würde sowieso automatisch Integer benutzt werden.
die lowerCamelCase schreibweise habe ich mir eigtl bereits angewohnt wo x_y steht ist das vom Editor selbst so gemacht worden aber ich werde in Zukunft immer überprüfen und alles an Variablen/Methoden als lCC schreiben.
Und um deinem Vorschlag folge zu leisten habe ich alle selbst eingefügten AWT Objekte mit dem gleichen Swing ausgetauscht!


@faetzminator: wo ist der Unterschied zwischen [c]Arraylist<Integer>[/c] und [c]List<Integer>[/c]?


@ Dit: Ich bin mir schon ziemlich sicher das es vorgefertigte Sortiermöglichkeiten für das ganze gibt aber ich muss Quicksort selbst basteln und keine automatische Sortierung nutzen :)
PS: Wurde von niemandem Empfohlen bin der einzige Java-Liebhaber in meinem Freundeskreis, ich fand halt das Netbeans(womit ich sonst immer arbeite) ein bisschen groß dafür ist und wollte so viel wie möglich selbst schreiben.

Und jetzt will ich euch nochmal mit 2 Errors nerven welche mir mal wieder ausgegeben wurden:

Quicksort.java:68:10: cannot find symbol
symbol : variable size
location: interface java.util.List<java.lang.Integer>
n = a.size;
^
Quicksort.java:103:15: unexpected type
required: variable
found : value
a.get(n) = t;
^
2 errors
 

Steff87

Aktives Mitglied
Der zweite fehler ist, dass du get statt add genommen hast. mit a.get(i) wird ein wert ausgelesen und mit a.add(Element) wird der Wert am Ende der Liste geschrieben.
Beim anderen Fehler: Versuch es mal mit runden Klammern "()" hinter size.
 

Dit_

Bekanntes Mitglied
ich würde dir dringend Eclipse empfehlen, in Eclipse kannst du dein Programm nicht mal starten, wenn du so was wie
Java:
int n = liste.size;
im Code stehen hast. Jede Vernünftige IDE sollte den Benutzer sofort auf solche Fehler aufmerksam machen. Eclipse liefert noch kurze "Erklärung" was du an jene Stelle falsch machst. :)
 

Creeep

Mitglied
Der zweite fehler ist, dass du get statt add genommen hast. mit a.get(i) wird ein wert ausgelesen und mit a.add(Element) wird der Wert am Ende der Liste geschrieben.
Beim anderen Fehler: Versuch es mal mit runden Klammern "()" hinter size.

Also das mit den () Klammern war wirklich ein dummer Fehler von mir, aber kann ja auch passieren.
Ich habe jetzt .get mit .add ausgetauscht kriege aber immernoch ein compile error raus:

Quicksort.java:103:15: unexpected type
required: variable
found : value
a.add(n) = t;
^
1 error

Kann mir nicht zufällig jemand erklären wie man sowas liest oder ob es eine Seite gibt wo alle Errors drin stehen?

@ Dit_: Ich kann mal schauen, habe mir i.-wann mal Eclipse runtergeladen aber nie besonders viel damit gearbeitet.
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
nein, so drehen wir uns im kreis. Wir können dir nicht jede Methode in der API erklären. Arbeite mal das hier durch:Galileo Computing :: Java ist auch eine Insel – 13.3 Listen

Ich schreibe bewusst arbeite. Du sollst nicht nur drüberlesen, sondern mach die Beispiele wirklich nach und lerne diese zu verstehen.

Und nutze Eclipse. Afaik ist Java Editor tod (kann sein das ich den verwechsle aber ich bin mir eigentl. ziemlich sicher). Alternativ zu Eclipse könntest du Netbeans verwenden. Bei beiden hast du schnellen Einblick in die relevanten Teile der Java-Api (die IDE sucht dir diese raus und zeigt dir diese als "tooltip" an). Solange solltest du dir unbedingt die aktuelle Java-Api offenhalten und die Methoden-Beschreibungen durchlesen, dann findest du z.B. auch selbst ganz schnell raus, wieso:
Java:
a.add(n)=t;
nicht nur nicht funktioniert, sondern wieso es auch keinen Sinn ergibt, es so zu verwenden. Wie es richtig geht, erklärt dir der Link der am Anfang des Postes steht.
 

Creeep

Mitglied
Gut, ich habe mich jetzt innerhalb der 1-2 Tagen wo ich nichts geantwortet habe durch den Listenteil in deinem Link durchgeschlagen, ich bedanke mich vielmals dafür da mir das (merkwürdigerweise) sehr geholfen hat einen Link zum durchlesen zu haben anstatt ne erklärung der ganzen geschichte.

Ich bin mir zwar noch nicht sicher ob ich den Fehler bei
Code:
a.add(n) = t;[/c] gefunden habe, aber ich habe ein Idee wie ich es anders machen könnte!
[code=Java]
a.add(n, t);
Na wie ist das?
An Stelle n soll der Wert von t übernommen werden, somit wäre das eigtl Ziel erreicht oder gibt es noch einen Fehler den ich übersehen habe?
 
T

Tomate_Salat

Gast
schlecht:
Inserts the specified element at the specified position in this list (optional operation). Shifts the element currently at that position (if any) and any subsequent elements to the right (adds one to their indices).
wie der Name schon vermuten lässt: [c]add[/c] fügt etwas hinzu, aber ersetzt nichts. Wenn du einen Wert an einer definierten Stelle ändern willst, musst du set benutzen:
Replaces the element at the specified position in this list with the specified element (optional operation).
 

Creeep

Mitglied
Nicht 1 mal kann ich was richtig machen -.-''
Naja, danke nochmal.

Ich will zwar nicht schon wieder nerven aber... das Hauptproblem ist eigtl noch offen:
Jeder hat mir vorgeschlagen per Enter verknüpft mit dem JTextfield meine ganzen Befehle durchgehen zu lassen aber dies funktioniert immernoch nicht so recht.
Ich habe SuFu & Google auseinandergerissen und habe mir 3 möglichkeiten gebaut:
Java:
zahleneingabe.addActionListener(new ActionListener(){
  public void actionPerformed(ActionEvent e){
  zahleneingabe.setText("");
  }
  });

  zahleneingabe.addKeyListener(new KeyListener()   { 
      public void keyTyped(KeyEvent e) {}
      public void keyReleased(KeyEvent e) {}
      public void keyPressed(KeyEvent e) {
               int key = e.getKeyCode();

               if (key == KeyEvent.VK_ENTER) {         
               zahleneingabe.setText("");                   
}}
  });

 public void zahleneingabeActionPerformed(ActionEvent evt) {
	  if(evt.getSource().equals(zahleneingabe)){
         zahleneingabe.setText("");
         }
  }
Weder Compile errors, noch wenn das Programm läuft irgendwas, und beim Debuger passiert auch nichts, als ob Enter einfach nicht erkannt wird.

MfG Creeep
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Hier mal ein Beispiel:
Java:
import java.awt.Dimension;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class Application
	extends JFrame
{
	public static void main(String[] args) 
	{
		Application app = new Application();
		app.open();
	}
	
	private JTextField sampleText = new JTextField();
	
	public Application() 
	{
		init();
	}
	
	private void init()
	{
		setTitle("KeyListener Demo");
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		sampleText.addKeyListener(new KeyAdapter() 
		{
			@Override
			public void keyReleased(KeyEvent e) 
			{
				if(e.getKeyCode()==KeyEvent.VK_ENTER) {
					String receivedText = sampleText.getText().trim();
					JOptionPane.showMessageDialog(Application.this, "Input: " + receivedText);
					sampleText.setText("");
				}
			}
		});
		
		sampleText.setPreferredSize(new Dimension(400, 20));
		
		add(sampleText);
	}
	
	public void open()
	{
		pack();
		setLocationRelativeTo(null);
		
		SwingUtilities.invokeLater(new Runnable() 
		{
			@Override
			public void run() 
			{
				setVisible(true);
			}
		});
	}
}

vllt liegts an der Uhrzeit: aber in der Theorie sollte dein Codeausschnitt funktioniern.

Nicht 1 mal kann ich was richtig machen -.-''
ach, aus Fehlern lernt man.
 
Zuletzt bearbeitet von einem Moderator:

Creeep

Mitglied
Ich danke für das Codebeispiel, damit habe ich meinen Fehler nämlich gleich gefunden.
Es ist schon ziemlich doof wenn man alle Methoden richtig schreibt und keine Errors hat ABER die Methoden nicht in den Hauptteil des Java Programms reinpackt!!
Kein wunder das der Code theorethisch funktioniert.

Nochmals vielen dank für die Geduldige Hilfe

MfG Creeep
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
CptK x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
A letzen 2 Zahlen eines int auslesen Java Basics - Anfänger-Themen 3
C Chars eines Strings mit for schleife rückwärts auslesen Java Basics - Anfänger-Themen 8
A Erste Schritte Nicht zu findender Fehler beim Auslesen eines Buchstabens Java Basics - Anfänger-Themen 4
L auslesen einer Variablen eines Objekt welches "Eigentum" eines Objektes der selben Klasse ist. Java Basics - Anfänger-Themen 12
V JNDI / LDAP Attribute eines Benutzers auslesen Java Basics - Anfänger-Themen 1
D Dateigröße, Auflösung und Ausmaße eines Bildes auslesen Java Basics - Anfänger-Themen 8
K Inhalt eines Elements aus dem Objekt Array auslesen Java Basics - Anfänger-Themen 9
1 Problem bei auslesen eines Result Sets Java Basics - Anfänger-Themen 4
S bestimmtes Auslesen von Spalten eines ResultSet ? Java Basics - Anfänger-Themen 7
N Alle Schriftarten eines Systems auslesen Java Basics - Anfänger-Themen 2
G die 2 grösten werte eines arrays auslesen Java Basics - Anfänger-Themen 7
K Problem mit dem Auslesen eines Bildes Java Basics - Anfänger-Themen 18
M Auslesen eines InputStream Java Basics - Anfänger-Themen 4
B auslesen eines textfield und probleme mit button Java Basics - Anfänger-Themen 13
G properties-Datei innerhalb eines package auslesen Java Basics - Anfänger-Themen 3
C letzte Zeilen eines Files auslesen Java Basics - Anfänger-Themen 3
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
J Informationen aus Webseiten auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
dragonfight86 Erste Schritte OpenDocument auslesen Java Basics - Anfänger-Themen 13
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
Chrizzey45 Calc-Dokument in Java auslesen? Java Basics - Anfänger-Themen 2
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5
M Eigenschaften einer Datei auslesen Java Basics - Anfänger-Themen 5
M Textarea auslesen und beschreiben Java Basics - Anfänger-Themen 8
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben