Collections 4 Listen

yOsi

Mitglied
Hallo zusammen,

also folgendes. Ich sitze hier vor einem nicht von mir selbst geschriebenen Code, der einen Form-Editor erstellt. Also, bevor ich hier großartig Fragen stelle, kann mir jemand sagen was er/sie genau benötigt, damit man mir weiter helfen kann!!!

Wäre echt super!!! Vielen Dank im Voraus!

--------
edit SlaterB:
alter Thementitel: Ich muss eine Liste auf 4 Listen erweitern!?! Wer kann mir weiter helfen und wie
 
Zuletzt bearbeitet von einem Moderator:
M

Marcinek

Gast
Hi,

Also auf jeden Fall Code!

Den dazugeörigen Fehler oder Frage.

Ggf. Aufgabenstellung / Fachliche Beschreibung des Problems (Was soll man machen).

Gruß,

Martin
 

yOsi

Mitglied
Ok, kleinen Moment bitte!!!

Der wird aber ziemlich lang sein...ist das ein Problem?!?
 
Zuletzt bearbeitet:

yOsi

Mitglied
Java:
package com.le.formseditor.model;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.attribute.FileTime;
import java.util.ArrayList;
import java.util.prefs.Preferences;

import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

import com.le.formseditor.gui.FormsFrame;
import com.le.formseditor.gui.MyElement;

/**
 * Model for handling the file-operations
 * 
 * @author Simon Wirth
 * 
 */
public class FileModel {
	/** the path-object pointing to the list-file */
	private static Path path;
	/** a list holding all strings from the list-file */
	private ArrayList<String> list;
	/** for caching purposes */
	private FileTime lastModified;
	/** a file chooser */
	public static JFileChooser fc = new JFileChooser();
	/** preferences */
	private static Preferences prefs;
	/** holding the last error message */
	public static String errorMsg = "none";
	/** holding the name of the latest used i.e. loaded/saved file*/
	public static String fileName = " - new File";
	/** the last opened/saved file */
	private static File lastFile = null;

	/**
	 * the model-constructor.
	 */
	public FileModel() {
		File file = null;

		prefs = Preferences.userRoot().node("FormsEditor");	
		String listFile = prefs.get("listFile", null);

		boolean askForFile = false;

		if(listFile == null)
			askForFile = true;
		else
			file = new File(listFile);

		if(file == null || !file.exists())
			askForFile = true;

		if(askForFile) {
			JOptionPane.showMessageDialog(null,
					"Since this is the first start you have to choose a List-File first.",
					"Choose List-File", JOptionPane.INFORMATION_MESSAGE);
			boolean success = changeListFile();
			if(!success) {
				JOptionPane
				.showMessageDialog(
						null,
						"You canceled the selection-dialog.\nThe Forms-Editor will be closed now.",
						"Closing Forms-Editor", JOptionPane.WARNING_MESSAGE);
				System.exit(0);
			}
		} else {
			path = file.toPath();
		}
	}

	/**
	 * method for reading in the file
	 * 
	 * @return true if the file was successfully read,<br>
	 *         flase otherwise.
	 */
	public boolean readFile() {
		try {
			list = (ArrayList<String>) Files.readAllLines(path,
					Charset.forName("US-ASCII"));
			lastModified = Files.getLastModifiedTime(path);
		} catch (IOException e) {
			errorMsg = e.getMessage();
			return false;
		}
		return true;
	}

	/**
	 * getter for the value-list
	 * 
	 * @param type the list-type
	 * @return a list of values from the list-file
	 */
	//TODO use type
	
	
	
	public ArrayList<String> getList(Type type) {
		if (list == null) 
			readFile();
		try{
			if (!(lastModified.equals(Files.getLastModifiedTime(path)))) {
				readFile();
			} }
			catch (IOException e) {
				errorMsg = e.getMessage();
				return null;
			}
			return list;
		}
	
	

	/**
	 * getter for the value-list as array
	 * 
	 * @param type the list-type
	 * @return the value-list as array
	 */
	public String[] getArray(Type type) {
		ArrayList<String> list = getList(type);
		return list.toArray(new String[list.size()]);
	}


	/**
	 * method for changing the list-file
	 * 
	 * @return if it was successful
	 */
	public static boolean changeListFile() {
		File file;

		int returnVal = fc.showOpenDialog(null);

		if (returnVal == JFileChooser.APPROVE_OPTION) {
			file = fc.getSelectedFile();
		} else {
			errorMsg = "Selection aborted!";
			return false;
		}

		if (!file.exists()) {
			errorMsg = "File" + file.getAbsolutePath() + " doesn't exist!";
			//			System.err.println("File" + file.getAbsolutePath() + " doesn't exist!");
			return false;
		} else if (!file.canRead()) {
			errorMsg = "Can't read file" + file.getAbsolutePath();
			//			System.err.println("Can't read file" + file.getAbsolutePath());
			return false;
		}
		path = file.toPath();
		prefs.put("listFile", file.getAbsolutePath());
		return true;
	}
	/**
	 * method for writing the existing form to a file
	 * 
	 * @param components the components in the form
	 * @param sizes the size of the components
	 * @param formName the name of the form
	 * @param quicksave if the last used filename should be used again
	 * @return if writing was successful
	 */
	public static boolean writeFormToFile(JComponent[][] components, int[][][] sizes, String formName, boolean quicksave) {
		if(formName == null || formName.length() == 0) {
			errorMsg = "Dialog for form name aborted!";
			return false;
		} else
			formName = formName.toUpperCase();

		File f;
		if(quicksave && lastFile != null){
			f = lastFile;
		} else {
			int returnVal = fc.showSaveDialog(FormsFrame.getInstance());
			if (returnVal == JFileChooser.APPROVE_OPTION) {
				f = fc.getSelectedFile();
			} else {
				errorMsg = "Selection aborted!";
				return false;
			}
		}
		return writeFormToFile(components, sizes, formName, f);
	}

	/**
	 * method for writing the existing form to a file
	 * 
	 * @param components the components in the form
	 * @param sizes the size of the components
	 * @param file the file
	 * @return if writing was successful
	 */
	private static boolean writeFormToFile(JComponent[][] components, int[][][] sizes, String formName, File f) {
		try {
			BufferedWriter bf = new BufferedWriter(new FileWriter(f));
			ArrayList<String> tags = new ArrayList<String>();
			String line = "";
			bf.write("NAME=" + formName + ";TYPE=FORM;");
			bf.newLine();
			bf.write("LAYOUT=");
			bf.newLine();
			bf.write("+--------------------------------------------------------------------------------+,");
			bf.newLine();
			for (int i = 0; i < components.length; i++) {
				line = "|";
				for (int j = 0; j < components[i].length; j++) {
					if (components[i][j] != null && components[i][j] instanceof MyElement) {
						// for debugging
						//												System.out.println("found => row: " + i + " col: " + j
						//														+ " comp: " + components[i][j].toString());
						MyElement element = ((MyElement) components[i][j]);
						tags.add(components[i][j].toString() + ",ROW(" + i + "),COL(" + j +");" );
						String text = element.getType().equals(Type.TEXT) ? element.getText() : element.getTag();
						line += text;
						if (text.length() < sizes[i][j][0]) {
							for (int k = text.length(); k < sizes[i][j][0]; k++) {
								line += " ";
							}
						}
						j += sizes[i][j][0] - 1;
					}
					else {
						line += " ";
					}
				}
				line += "|,";
				bf.write(line);
				bf.newLine();
			}
			bf.write("+--------------------------------------------------------------------------------+;");
			bf.newLine();

			bf.newLine();
			bf.write("Tags:");
			bf.newLine();

			for (String tag : tags) {
				bf.write(tag);
				bf.newLine();
			}
			// ---
			bf.flush();
			bf.close();
			System.out.println("--- Saving to File " + f.getAbsolutePath()
					+ " completed. Components found: " + tags.size() + " ---");
			fileName = " - " + f.getName();
			lastFile = f;
			return true;
		} catch (IOException e) {
			errorMsg = e.getMessage();
			return false;
		}

	}

	/**
	 * method for load a form from a file
	 * @return if reading was successful
	 */
	public static boolean loadFormFromFile(FormsModel mm) {
		File f;
		int returnVal = fc.showOpenDialog(FormsFrame.getInstance());
		if (returnVal == JFileChooser.APPROVE_OPTION) {
			f = fc.getSelectedFile();
		} else {
			errorMsg = "Selection aborted!";
			return false;
		}
		try {
			ArrayList<String> lines = (ArrayList<String>) Files.readAllLines( f.toPath(), Charset.forName("US-ASCII"));
			boolean farEnough = false;
			int count = 0;
			for (String line : lines) {
				if (farEnough) {
					// parse a line to a component and insert it
					boolean success = mm.insertNewComponent(line);
					if (success)
						count++;
					else
						break;
				}
				if (line.startsWith("Tags:")) {
					farEnough = true;
					mm.clearForm();
				}

			}
			System.out.println("--- Reading from File " + f.getAbsolutePath()
					+ " completed. Components inserted: " + count + " ---");
			fileName = " - " + f.getName();
			lastFile = f;
			return true;
		} catch (IOException e) {
			errorMsg = e.getMessage();
			return false;
		}
	}
	/**
	 * reset for new File
	 */
	public static void newFile() {
		fileName = " - new File";
		lastFile = null;
	}

}
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
gewöhnungsbedürftiger Thementitel, wenig Infos im ersten Posting, nun keine Java-Tags trotz dicken roten Hinweis überall,
Fragen/ Erklärungen immer noch kaum,
jedes Satzende mit drei Ausrufezeichen oder Fragezeichen..

kannst du mit etwas Abstand über dich selber reflektieren?
mal nachdenken was dich von konstruktiven Fragestellern unterscheidet?
wie viel Zeit läßt du dir für Postings, wie viele andere Themen hast du vorher auf Fragen und Verlauf untersuchst?
alles was du dir an Zeit, Mühe, Arbeit sparst, bürdest du dann anderen auf,
na vielen Dank in einem kostenlosen Forum..
 
Zuletzt bearbeitet von einem Moderator:

yOsi

Mitglied
Also, mein Problem ist, dass ich nicht weiß wo ich da ansetzen sollte. Die eine Liste wird in /Java public boolean readFile */Java aufgerufen. Wie könnte ich jetzt diese eine Liste nun auf vier erweitern!?!

Was müsstest du noch genau wissen?!

gruß
 
T

Trolllllll

Gast
So in der von Marcinek erstellten Liste ist Punkt 1 abgearbeitet
[STRIKE]Also auf jeden Fall Code![/STRIKE]
Den dazugeörigen Fehler oder Frage.
Ggf. Aufgabenstellung / Fachliche Beschreibung des Problems (Was soll man machen).
[EDIT]OK auch das erklät mir auch nicht mehr, als würde ich immer noch sagen, 2 Punkte sind noch offen[/EDIT]
 

Michael...

Top Contributor
Wie könnte ich jetzt diese eine Liste nun auf vier erweitern!?!
?!?
Daraus wird nicht unbedingt ersichtlich was verändert werden soll.
Was genau soll verändert werden - nicht im Code - sondern am Verhalten des Programms? Um welche Funktionalität soll es erweitert werden?
In der readFile vier Listen zu erzeugen macht erstmal keinen Sinn, auch das Aufteilen der einen Liste auf vier ohne besondere Kritieren scheint auch nicht sonderlich sinnvoll.
 

langhaar!

Bekanntes Mitglied
Was müsstest du noch genau wissen?!

Eine genaue sprachliche Beschreibung deines Problems.
So wie du jetzt fragst: wie kann ich eine Liste auf 4 erweitern,
ist die Antwort:
indem du dass, was in die eine Liste geschrieben wird, in 4 reinschreibst. Damit ist rein technisch dein Problem gelöst.
(offen ist, warum du 4 Listen haben willst, was diese beinhalten/darstellen sollen etc.)

sry, bin selber gerade ein bischen planlos....
Wenn du selber kein Ahnung hast, was du machen willst, wie sollen dir dann andere helfen könne? :autsch:
 
Zuletzt bearbeitet:

yOsi

Mitglied
Ok, habe mal ein bischen gelesen bei "wenn du fragst".

Ich hoffe, meine Beschreibung trifft es. Das gesamte Programm soll ein Prototyp für eine Maskenerstellung sein.


Folgende Punkte habe ich, die ich abarbeiten soll.

Ich zitiere:

"Erweiterung auf 4 Listen(zuerst kommen die 4 Listen aus einem File oder aus 4 Files[was einfacher ist].

Ich habe das mulmige Gefühl, dass da noch die ein oder andere Information fehlt.

Und inwiefern ergibt es keinen Sinn. Welche zusätzlichen Infos sollte ich noch bereitstellen?

Vielen Dank und entschuldigt meine etwas amateurhafte Art.
 

KSG9|sebastian

Top Contributor
Na ja..es ergibt gar keinen Sinn was du da schreibst.

Erweitern sie das Programm auf 4 Listen:

Code:
alte Klasse {
   private List<?> list1, list2, list3, list4;
}

Fertig?


Beschreib doch mal das fachliche Problem. Was genau soll das Programm nach deiner Änderung können?
 
S

SlaterB

Gast
hier ist das Programm für dich auf 4 Listen erweitert
Java:
public class FileModel {

   private List a = new ArrayList();
   private List b = new ArrayList();
   private List c = new ArrayList();
   private List d = new ArrayList();

   // .. Rest
fertig, danke, Thema kann geschlossen werden

jetzt schreist du 'ja aber, da wird doch gar nicht das und das eingefügt, das wird doch gar nicht an dieser und jener Stelle verwendet usw'
-> da hast du es, genau diese Infos werden benötigt!, WO, WAS, WIE, WARUM usw.

es ist freilich zu befürchten dass du nur eine Aufgabe abliest, selber gar nicht weißt was zu tun ist,
dann sieht es nicht gut aus

edit: Mist, Mehrfachgedanke ;)
 

langhaar!

Bekanntes Mitglied
Anscheinend liegt ein grundsätzliches Missverständnis vor.

Es wird erwartet, dass du genau (also haarklein; mathematisch exakt) beschreiben kannst, was dein Programm machen soll.
Niemand schaut sich hier ein längeres Programm an, um dann zu raten(!) welche Aufgabe dieses Programm nach einer unbekannten(!) Änderung vielleicht erfüllen soll.
 

yOsi

Mitglied
Ok, ich schließe mal das Thema, gucke mir das noch mal genauer an und schreibe später noch mal rein, wie und was genau ich gerne geändert haben will.

Danke euch fürs erste!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Listen in Listen in Listen ... ??? Java Basics - Anfänger-Themen 2
XWing listen Java Basics - Anfänger-Themen 7
FunkyPhil94 addLast und addFirst bei Listen Java Basics - Anfänger-Themen 6
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
Buroto Threads Verschiedene .txt Dateien Auf Listen und Verbinden Java Basics - Anfänger-Themen 3
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
S Lineare listen verkettung Java Basics - Anfänger-Themen 7
S Listen Java Basics - Anfänger-Themen 12
S Listen , Nodes am ende anängen Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
M Java Listen Java Basics - Anfänger-Themen 4
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
A PhoneBook mit verketteten listen Java Basics - Anfänger-Themen 48
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
G Java Listen und Iterator Java Basics - Anfänger-Themen 2
S Erklaerung Listen Java Basics - Anfänger-Themen 27
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
L Skip Listen Java Basics - Anfänger-Themen 5
S Collections funktionale Listen (ListNode<E>) review und problem beim clone Java Basics - Anfänger-Themen 0
L Wie testet man (selbstgeschriebene) Listen sinnvoll? Java Basics - Anfänger-Themen 2
F Problem mit Listen Java Basics - Anfänger-Themen 5
J Listen Operationen Java Basics - Anfänger-Themen 4
O Unterschied Arrays, Listen, Mengen Java Basics - Anfänger-Themen 24
J Eine Liste von Listen erstellen Java Basics - Anfänger-Themen 11
A Sortierte Listen Java Basics - Anfänger-Themen 4
L Datenstrukturen/ Listen Java Basics - Anfänger-Themen 17
A Was könnten typische Prüfungsaufgaben zum Thema lineare, verkettete Listen sein? Java Basics - Anfänger-Themen 5
L Listen und Felder Java Basics - Anfänger-Themen 2
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
R Arrays und Listen Java Basics - Anfänger-Themen 1
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
F Multidimensionale Listen Java Basics - Anfänger-Themen 3
F Wie String in unterschiedliche Listen teilen Java Basics - Anfänger-Themen 7
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
T Objekte in Listen vererben Java Basics - Anfänger-Themen 3
A Klassen Klassen und Listen... Java Basics - Anfänger-Themen 5
Hacer Operationen einfach verketteter Listen Java Basics - Anfänger-Themen 22
S Methoden Vergleichen von zwei Listen in der Geschwindigkeit von O(n+m) Java Basics - Anfänger-Themen 32
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
C Listen Java Basics - Anfänger-Themen 3
C Zwei Listen verbinden Java Basics - Anfänger-Themen 1
C Zahlen merken mit Hilfe von Arrays/Listen Java Basics - Anfänger-Themen 2
E Feld von verketteten Listen Java Basics - Anfänger-Themen 11
T Überprüfung einer Aufgabe zu verketteten Listen Java Basics - Anfänger-Themen 5
S Liste mit Objekten und Listen Java Basics - Anfänger-Themen 9
JarJarBigs Frage zu Listen Java Basics - Anfänger-Themen 2
N verkettete Listen Java Basics - Anfänger-Themen 4
O Listen sort-Methode Java Basics - Anfänger-Themen 1
I Listen sortieren bei mehreren Listen zu einer Java Basics - Anfänger-Themen 2
L Lineare Listen Java Basics - Anfänger-Themen 2
S Listen Objekte nach LocalDateTime sortieren Java Basics - Anfänger-Themen 2
D Methoden Listen generieren Java Basics - Anfänger-Themen 4
A Sichtbarkeit in Methoden/Listen Java Basics - Anfänger-Themen 3
M verkettete Listen Java Basics - Anfänger-Themen 1
D Klausur Vorbereitung: Listen, Rekursion, Bäume & Vererbung Java Basics - Anfänger-Themen 3
S Vergleich von Listen Java Basics - Anfänger-Themen 6
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 2
M Listen erstellen mit unterschiedlichen Reihenfolgen Java Basics - Anfänger-Themen 3
I Zwei Listen vergleichen bei n:m Beziehung Java Basics - Anfänger-Themen 2
I Zwei Listen: Wenn nicht vorhanden löschen Java Basics - Anfänger-Themen 4
I Prüfen von zwei Listen Java Basics - Anfänger-Themen 1
K Interface Generics, Interfaces und Listen - ich bin verwirrt. Java Basics - Anfänger-Themen 7
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
llabusch Verkette Listen - Einfach und Doppelt Java Basics - Anfänger-Themen 3
S Unsortierte Listen - Frage zur "Verkettung" Java Basics - Anfänger-Themen 1
I Zwei Listen vergleichen Java Basics - Anfänger-Themen 7
I Listen, for - Schleifen Java Basics - Anfänger-Themen 8
P Listen Size stimmt nicht Java Basics - Anfänger-Themen 5
O Objekt Listen serialisierung und deserialisieren Java Basics - Anfänger-Themen 5
L Collections Objekte in Listen speichern Java Basics - Anfänger-Themen 3
G 2 Listen kombinieren und nach abc sortieren Java Basics - Anfänger-Themen 9
D Annonyme Innere Klasse: Listen mit geradem Index ausgeben Java Basics - Anfänger-Themen 6
G Listen sortieren Java Basics - Anfänger-Themen 3
G Generic und Listen Java Basics - Anfänger-Themen 8
R SQL ähnlicher Filter für Java Listen Java Basics - Anfänger-Themen 2
S OOP/ Listen...etc... Java Basics - Anfänger-Themen 14
E Listen Java Basics - Anfänger-Themen 2
V Methoden Verkettete Listen Index eines Elementes ausgeben Java Basics - Anfänger-Themen 10
B Listen Java Basics - Anfänger-Themen 3
B eigene klasse in listen eintragen Java Basics - Anfänger-Themen 6
B Map per Listen Java Basics - Anfänger-Themen 2
S Erfahrungswerte von schnelles durchlaufen von Listen mit 2 Werten Java Basics - Anfänger-Themen 10
Joew0815 Problem mit Listen: add() Java Basics - Anfänger-Themen 11
P Zeichenorientierte & Serialisierte Datenverarbeitung Listen Java Basics - Anfänger-Themen 8
E Listen und Generics Java Basics - Anfänger-Themen 9
L dynamisches erzeugen von array Listen Java Basics - Anfänger-Themen 7
E Listen und Duplikate Java Basics - Anfänger-Themen 2
R Hilfe bei Listen Java Basics - Anfänger-Themen 10
F Collections Liste von Listen Java Basics - Anfänger-Themen 21
A Methoden Anfängerfrage: 2 Listen Vergleichen Java Basics - Anfänger-Themen 7
walker23m C++ Listen iteratoren in Java umwandeln Java Basics - Anfänger-Themen 3
X Listen und verschiedene Methoden Java Basics - Anfänger-Themen 6
N Listen Java Basics - Anfänger-Themen 5
S Listen Klasse selbst schreiben Java Basics - Anfänger-Themen 6
propra Objekte in mehreren Listen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben