dynamisches Array

Status
Nicht offen für weitere Antworten.
K

kurt++

Gast
Brauche ein Array mit Zeichenkette, welches Automatisch nach jedem einfügen/löschen größer/kleiner wird. Ich möchte aber auch genau sagen können das ich auf Stelle xy zugreifen will. Bekommt man das in Java irgendwie hin?
 

ARadauer

Top Contributor
ich vermute mal, dass es eine schulaufgabe ist und er deshalb sicher keine collections nehmen darf

klar geht das in java
 

Marco13

Top Contributor
Naja - eine ArrayList o.ä wird ja nicht "echt" nach jedem Einfügen größer oder kleiner ... aber "sie fühlt sich so an, als würde sie das tun" :D von daher denke ich, dass das eine geeignete Lösung ist...
 
K

kurt++

Gast
keine Schulaufgabe, also wäre mir eine saubere einfache Lösung am liebsten....

die Array Liste habe ich ausprobiert aber irgendwie habe ich mit der viele Probleme:

Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.event.*;
import java.util.Properties;
import java.util.ArrayList;
import java.util.Iterator;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;

public class PKONV0003
extends JFrame
implements ActionListener, CaretListener
{
	
	private JTextField tfWcodes = new JTextField(25);
	private JTextField tfAVar = new JTextField(5);
	private JTextField tfIndAkt = new JTextField(2);
	private JTextField tfIndMax = new JTextField(2);
	private JButton btnVor = new JButton(">");
	private JButton btnZurueck = new JButton("<");
	
	private static int IndMax = 1;                                                       
	private static int IndAkt = 1;
	private static int upd = 0;
	
	private ArrayList<String> AVar = new ArrayList<String>();
	private ArrayList<String> Wcodes = new ArrayList<String>();
		
 	private static PKONV0003 wnd = new PKONV0003();
 	
	public PKONV0003()
	{
		super("Eingabe der Werbecodes");
		
		Container contentPane = getContentPane();
		contentPane.setLayout(new GridLayout(3,1));
		
// Zeile 1: 

		JPanel zeile1 = new JPanel();
		zeile1.setLayout(new GridLayout(1,2));
		 
		JLabel lblAVar = new JLabel(
				"  Ausgabevariante:",
				SwingConstants.LEFT
				);
		zeile1.add(lblAVar);
		tfAVar.addCaretListener(this);
		tfWcodes.setToolTipText("Eingabe der Ausgabevariante");
		zeile1.add(tfAVar);				
		
		zeile1.setBorder(BorderFactory.createEtchedBorder());
		contentPane.add(zeile1);
		
// Zeile 2:
		
		JPanel zeile2 = new JPanel();
		zeile2.setLayout(new GridLayout(1,2));
		
		JLabel lblWcodes = new JLabel(
				"  Werbecodes:",
				SwingConstants.LEFT
				);	
		zeile2.add(lblWcodes);
		tfWcodes.addCaretListener(this);
		tfWcodes.setToolTipText("Eingabe der Werbecodes");
		zeile2.add(tfWcodes);

		zeile2.setBorder(BorderFactory.createEtchedBorder());
		contentPane.add(zeile2);
		
// Zeile 3:
		
		JPanel zeile3 = new JPanel();
		zeile3.setLayout(new FlowLayout());
		
		btnZurueck.setToolTipText("Zurück");
		btnZurueck.addActionListener(this);
		zeile3.add(btnZurueck);
		
		tfIndAkt.setToolTipText("Springe zu...");
		tfIndAkt.addActionListener(this);
		tfIndAkt.setText("1");
		zeile3.add(tfIndAkt);
		
		JLabel lblFlash = new JLabel(
				"  /",
				SwingConstants.LEFT
				);	
		zeile3.add(lblFlash);
		
		tfIndMax.setEditable(false);
		tfIndMax.setText("1");
		zeile3.add(tfIndMax);
		
		btnVor.setToolTipText("Vor");
		btnVor.addActionListener(this);
		zeile3.add(btnVor);
		
		zeile3.setBorder(BorderFactory.createEtchedBorder());
		getContentPane().add(zeile3);
		
		AVar.add(0," ");
		Wcodes.add(0," ");		
	}
	
	public void caretUpdate(CaretEvent event)
	{
		
		if (upd == 0)
		{
	 		AVar.add(IndAkt,tfAVar.getText());
	 		Wcodes.add(IndAkt,tfWcodes.getText());
			
			System.out.println(IndAkt+": "+AVar.get(IndAkt)+" - "+Wcodes.get(IndAkt)+" - *");
			
			IndMax = Wcodes.size();	
			tfIndMax.setText(String.valueOf(IndAkt));
		}
	}
	
	public void actionPerformed(ActionEvent event)
	{
		upd = 1;
		
				
		String cmd = event.getActionCommand();
//		System.out.println(cmd);
				
 		if(cmd == ">")
 		{
 			if(IndAkt <= IndMax)
 			{
 				IndAkt++;
 			}
 		}
 		if (cmd == "<")
 		{
 			if(IndAkt > 1)
 			{
 				IndAkt--;
 			}
 		}
 		System.out.println(IndAkt+" - "+IndMax);
 		 		
 		if (IndAkt <= IndMax)
 		{ 		
	 		tfAVar.setText(AVar.get(IndAkt));
	 		tfWcodes.setText(Wcodes.get(IndAkt));
 		}
 		else
 		{
 			tfAVar.setText("");
 			tfWcodes.setText("");
 		}
 		 		
 		tfIndAkt.setText(String.valueOf(IndAkt));
 		
 		upd = 0;
	}
		
	public void zeige(String plaf)
	{	
	   	wnd.setResizable(false);
		wnd.setLocation(400,250);
		wnd.setSize(350	,115);
	   	wnd.setVisible(true);				
	}
		
	public static void main(String[] args)
	{
	}
}
 

The_S

Top Contributor
kurt++ hat gesagt.:
die Array Liste habe ich ausprobiert aber irgendwie habe ich mit der viele Probleme:

Du postest Code, aber gibst keinen Kommentar dazu ab. Wie soll man dir da helfen!?

Was funktioniert nicht?
Was macht dein Programm jetzt?
Was soll es machen?
Wird eine Exception geworfen?
Welche Exception wird geworfen?
Wo ist die betreffende Stelle, die Probleme macht?
Inwiefern Probleme?
...?
 

ARadauer

Top Contributor
variablennamen KLEIN!

AVar.add(0," "); -> aVar.add(0," "); sowas ist wichtig!
aus welchem grund gibst du einen 0 mit? bewusst so?
 
G

Guest

Gast
Ich will zwei Arrays (AVar und Wcodes) füllen. Auf der Maske sind für die Eingabe zwei Textfelder (tfAVar und tfWcodes) drauf, außerdem zwei Buttons (btnZurueck und btnVor) um die Stelle des Textfeldes auszuwählen.

Beginne ich jetzt bei Index = 1 und Tippe dann Hallo ins erste Feld (AVar) und Tschüss ins zweite (Wcodes) füllt er mir die ersten Zwölf Felder wie folgt (System.out.println(i+": "+AVar.get(i)+" - "+Wcodes.get(i))):

1: Hallo - Tschüss
2: Hallo - Tschüs
3: Hallo - Tschü
4: Hallo - Tsch
5: Hallo - Tsc
6: Hallo - Ts
7: Hallo - T
8: Hallo -
9: Hall -
10: Hal -
11: Ha -
12: H -


gewollt ist aber das er nur das 1. füllt....
 

ARadauer

Top Contributor
also bei mir gehts:

1: - - *
1: s - - *
1: sd - - *
1: sdf - - *
1: sdf - - *
1: sdf - s - *
1: sdf - sd - *
1: sdf - sdf - *
1: sdf - sdfs - *
1: sdf - sdfsa - *
1: sdf - sdfsad - *
1: sdf - sdfsadf - *
 
K

kurt++

Gast
Und wenn du jetzt auf den Button ">" klickst und dann da was eingibst und wieder zurück gehen willst?
 
K

knut+++

Gast
ich glaub der schiebt durch das add immer das Textfeld da rein anstatt es zu überschreiben (Zeile 115/116)... wie bekomme ich den dazu das er das überschreibt (wenn schon eins da ist, und ich Text eingeben habe), es löscht (wenn schon eins da ist, und ich keinen Text eingeben habe) oder neuanlegt(wenn schon eins da ist, und ich Text eingeben habe)?
 

ARadauer

Top Contributor
wenn ich weiter gehe steht zwar noch der alte text da aber den kann ich löschen und was anderes rein schreibne und wen nich zurück gehe steht wieder der alte text da.

wobei deine klasse war nicht kompilierbar, eclipse hat einwenig was mit den imports gemacht, vielleicht liegts daran:

Code:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.awt.Container;
import javax.swing.event.*;
import java.util.ArrayList;


public class PKONV0003 extends JFrame implements ActionListener, CaretListener {

	private JTextField			tfWcodes	= new JTextField(25);
	private JTextField			tfAVar		= new JTextField(5);
	private JTextField			tfIndAkt	= new JTextField(2);
	private JTextField			tfIndMax	= new JTextField(2);
	private JButton				btnVor		= new JButton(">");
	private JButton				btnZurueck	= new JButton("<");

	private static int			IndMax		= 1;
	private static int			IndAkt		= 1;
	private static int			upd			= 0;

	private ArrayList<String>	AVar		= new ArrayList<String>();
	private ArrayList<String>	Wcodes		= new ArrayList<String>();

	private static PKONV0003	wnd			= new PKONV0003();

	public PKONV0003() {
		super("Eingabe der Werbecodes");

		Container contentPane = getContentPane();
		contentPane.setLayout(new GridLayout(3, 1));

		// Zeile 1:

		JPanel zeile1 = new JPanel();
		zeile1.setLayout(new GridLayout(1, 2));

		JLabel lblAVar = new JLabel("  Ausgabevariante:", SwingConstants.LEFT);
		zeile1.add(lblAVar);
		tfAVar.addCaretListener(this);
		tfWcodes.setToolTipText("Eingabe der Ausgabevariante");
		zeile1.add(tfAVar);

		zeile1.setBorder(BorderFactory.createEtchedBorder());
		contentPane.add(zeile1);

		// Zeile 2:

		JPanel zeile2 = new JPanel();
		zeile2.setLayout(new GridLayout(1, 2));

		JLabel lblWcodes = new JLabel("  Werbecodes:", SwingConstants.LEFT);
		zeile2.add(lblWcodes);
		tfWcodes.addCaretListener(this);
		tfWcodes.setToolTipText("Eingabe der Werbecodes");
		zeile2.add(tfWcodes);

		zeile2.setBorder(BorderFactory.createEtchedBorder());
		contentPane.add(zeile2);

		// Zeile 3:

		JPanel zeile3 = new JPanel();
		zeile3.setLayout(new FlowLayout());

		btnZurueck.setToolTipText("Zurück");
		btnZurueck.addActionListener(this);
		zeile3.add(btnZurueck);

		tfIndAkt.setToolTipText("Springe zu...");
		tfIndAkt.addActionListener(this);
		tfIndAkt.setText("1");
		zeile3.add(tfIndAkt);

		JLabel lblFlash = new JLabel("  /", SwingConstants.LEFT);
		zeile3.add(lblFlash);

		tfIndMax.setEditable(false);
		tfIndMax.setText("1");
		zeile3.add(tfIndMax);

		btnVor.setToolTipText("Vor");
		btnVor.addActionListener(this);
		zeile3.add(btnVor);

		zeile3.setBorder(BorderFactory.createEtchedBorder());
		getContentPane().add(zeile3);

		AVar.add(0, " ");
		Wcodes.add(0, " ");
	}

	public void caretUpdate(CaretEvent event) {

		if (upd == 0) {
			AVar.add(IndAkt, tfAVar.getText());
			Wcodes.add(IndAkt, tfWcodes.getText());

			System.out.println(IndAkt + ": " + AVar.get(IndAkt) + " - " + Wcodes.get(IndAkt) + " - *");

			IndMax = Wcodes.size();
			tfIndMax.setText(String.valueOf(IndAkt));
		}
	}

	public void actionPerformed(ActionEvent event) {
		upd = 1;

		String cmd = event.getActionCommand();
		// System.out.println(cmd);

		if (cmd == ">") {
			if (IndAkt <= IndMax) {
				IndAkt++;
			}
		}
		if (cmd == "<") {
			if (IndAkt > 1) {
				IndAkt--;
			}
		}
		System.out.println(IndAkt + " - " + IndMax);

		if (IndAkt <= IndMax) {
			tfAVar.setText(AVar.get(IndAkt));
			tfWcodes.setText(Wcodes.get(IndAkt));
		} else {
			tfAVar.setText("");
			tfWcodes.setText("");
		}

		tfIndAkt.setText(String.valueOf(IndAkt));

		upd = 0;
	}

	public void zeige(String plaf) {
		wnd.setResizable(false);
		wnd.setLocation(400, 250);
		wnd.setSize(350, 115);
		wnd.setVisible(true);
	}

	public static void main(String[] args) {
		PKONV0003 p = new PKONV0003();
		p.zeige(null);
	}
}
 
K

knut++

Gast
ja dann kannst du das zwar wieder überschreiben aber er fügt dann munter weiter ein statt zu überschreiben, wenn du im ersten zum Beispiel 12 schreibst, dann ist die Tabelle schon zwei groß einmal "12" und einmal "1", willst du die "1" überschreiben zum Beispiel mit "23", dann hängt der zwischen "12" und "1" einfach noch die felder "23", "2" und " " dran. das ist das problem, das er die nicht ersetzt...

ich möchte also immer wieder die Felder Removen und dann neu einfügen, oder gibt es hierfür eine bessere Lösung?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Dynamisches Array durch split()-Funktion? Java Basics - Anfänger-Themen 3
S Klassen Objekt- Tabelle / Dynamisches 2Dimensionales Array für Objekte Java Basics - Anfänger-Themen 6
C Erste Schritte Dynamisches Array Java Basics - Anfänger-Themen 11
L dynamisches erzeugen von array Listen Java Basics - Anfänger-Themen 7
A dynamisches Array - Index Liste Java Basics - Anfänger-Themen 2
A dynamisches Array simulieren Java Basics - Anfänger-Themen 8
M Zweidimensionales dynamisches Array füllen Java Basics - Anfänger-Themen 2
S dynamisches array + konstruktor Java Basics - Anfänger-Themen 5
K dynamisches Array erzeugen Java Basics - Anfänger-Themen 5
B Generische Typen für dynamisches Formular Java Basics - Anfänger-Themen 3
N Dynamisches Programmieren/Fibonacci Java Basics - Anfänger-Themen 1
J Polymorphie und Dynamisches Binden richtig nutzen Java Basics - Anfänger-Themen 11
O Schlange als dynamisches Feld - Aufwand Java Basics - Anfänger-Themen 16
T Dynamisches abarbeiten von statischen Methode aus verschiedenen Klassen. Java Basics - Anfänger-Themen 5
U Klassen Dynamisches Casten? Java Basics - Anfänger-Themen 39
X Methoden [GWT] Dynamisches Textfeld PopUp erstellen Java Basics - Anfänger-Themen 6
R dynamisches zweidimensionales Feld erzeugen Java Basics - Anfänger-Themen 8
maddin86 3 Dateien gleichzeitig speichern in dynamisches Benutzerverzeichnis (Windows) Java Basics - Anfänger-Themen 4
M Dynamisches Casten mal wieder Java Basics - Anfänger-Themen 4
A Dynamisches casten Java Basics - Anfänger-Themen 19
M Dynamisches und statisches binden Java Basics - Anfänger-Themen 17
M Dynamisches Binden Java Basics - Anfänger-Themen 8
M dynamisches Clipboard mit Buttons Java Basics - Anfänger-Themen 5
J Dynamisches/Statisches Binden ?? Java Basics - Anfänger-Themen 5
R dynamisches binden Java Basics - Anfänger-Themen 3
Bernasconi dynamisches JDialog Java Basics - Anfänger-Themen 2
R Dynamisches Gegenerieren von Objekten Java Basics - Anfänger-Themen 25
P dynamisches Binden klappt nicht so recht Java Basics - Anfänger-Themen 7
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
Lion.King Array deklarieren und initialisieren Java Basics - Anfänger-Themen 5
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22

Ähnliche Java Themen

Neue Themen


Oben