
_Arvid_
Mitglieder-
Gesamte Inhalte
165 -
Benutzer seit
-
Letzter Besuch
-
Also zunächst einmal hättest du die Fallunterscheidung so gut wie gar nicht benötigt. Bei den beiden Teilen mit Fall-Nummer und Namen machst du im Grunde das Gleiche (fast jedenfalls). Hier kannst du also etwas zusammenfassen und dadurch einige Codezeilen sparen. Des Weiteren fiel mir auf, dass du der Liste jedes Mal einen neu erzeugten ListSelectionListener anhängst, wenn ein Kriterium vom Benutzer gewählt wird. Das ist wohl eher suboptimal. Die Listener jeweils einmal zu adden, sollte wohl reichen. Bereinige deinen Code entsprechend etwas. Vielleicht ergibt sich das eine oder andere Problem dabei von selbst. Auf jeden Fall wird es wieder ein Stück übersichtlicher und möglicherweise findest du dann die Fehlerursachen selbst. Anderenfalls melde dich nochmal. =) Zudem verstehe ich die Schilderung des dritten Problems nicht so recht. Klingt nach fehlendem Repaint. :confused:
-
Rufe doch vorher einfach die Methode clear() auf das DefaultListModel auf.
-
Die Ursache dafür ist eigentlich recht simpel. Schau dir mal die Implementierung der Methode equals(Object) in der Klasse String an. Dort findest du folgenden Code (von mir mal auf das Wesentliche gekürzt): public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { // hier der Vergleich der Zeichenketten // irgendwo dann noch ein "return true;" } return false; }[/PHP]Du machst bei dir einen Vergleich mit eben jener equals-Methode und übergibst als Parameter ein Zeichen ([font=Courier New]char[/font]). Durch das Autoboxing wird aus dem [font=Courier New]char[/font] zur Compile-Zeit ein Objekt der Wrapperklasse [font=Courier New]Character[/font] gemacht. Wie du in der obigen Methode erkennen kannst, wird der Teil für den eigentlichen String-Vergleich übersprungen, da der Parameter kein Objekt der Klasse [font=Courier New]String[/font] ist. Und schwupps landest du beim Bool'schen [font=Courier New]false[/font] als Rückgabewert. Ich denke, für die weitere Lösungssuche sollte das ein ausreichender Hinweis sein.
-
mit <%= %> kannst du den gewünschten wert direkt ausgeben. du musst nicht auf das out zugreifen oder sonstige spielereien. für die ausgabe eines strings, sagen wir "blubb", schreibst du in deine jsp-seite einfach ein: <%= "blubb" %> EDIT: println ist eine methode des streams out. methodenparameter übergibt man nicht mit einem punkt, sondern in klammern. also hätte es sowieso schon heißen müssen: out.println(array[1]) ...wobei hier zu beachten ist, dass in java der erste index die 0 ist, nicht die 1. wie auch immer - beim aufruf der mehtode println() solltest du darauf achten, nicht das gleichheitszeichen zu verwenden, weil hier ein wert verlangt wird, der dann direkt auf den stream geschrieben wird, die methode println() gibt aber keinen wert zurück. also du hast zwei möglichkeiten: <%= array[0] %> oder <% println(array[0]); %>
-
Such doch einfach mal in der Suchmaschine deiner Wahl nach "mvc java example", dann findest du unter Anderem folgende Erläuterungen inklusive Beispiel. Wo genau hast du denn deine Probleme? Kommst du irgendwo nicht weiter (wo genau)? Oder hast du Probleme beim Ansatz (was möchtest du machen und wie weit bist du damit)?
-
Ich hätte zwar auch ein Beispiel, allerdings ist das nicht gerade klein. Das jetzt extra "klein zu machen", ist mir zu aufwändig. Schau dir stattdessen mal dieses MVC-HowTo an. Zwar wurde es nie zum Ende geführt, aber es enthält zumindest für den Anfang mehr oder minder hilfreiche Codebeispiele. Ansonsten bleibt ja immernoch die Suchmaschine deiner Wahl... Im Übrigen gibt es einen erstklassigen von James Dempsey (er singt auch ganz andere Lieder, hier: ).
-
Aber selbstverständlich. Zum Einen gibt es sogar hier im Forum eine Linkliste für den Einstieg in die Java-Welt. Was da jedoch noch fehlt (hab ich auf einen schnellen Blick jedenfalls nicht sehen können), sind die Java Tutorials von Sun. Weiterhin kann ich folgende Linkliste empfehlen: Java Tutorials.
-
@Java_Neuling Ein gut gemeinter Rat (...im Sinne von konstruktiver Kritik, nicht im Sinne von bösen Anschuldigungen, versteht sich...) Ich habe den Eindruck, du solltest dich nochmal eingehend mit den Grundlagen der Java-Welt beschäftigen. Im günstigsten Fall hättest du noch von der Entwicklung von GUIs abgesehen. Wenn ich mich an meine Anfangszeit erinnere, waren da nur irgendwelche Ausgaben auf der Commandline und Eingaben von der selbigen. Exception-Handling ist ein unausweichliches Grundkonzept in der Entwicklung mit Java. Die scheint dir noch nicht so richtig bewusst zu sein, so scheint mir. Beginne an der Wurzel mit einer Programmiersprache (Grundlagen), nicht an der Spitze (z.B. GUI)! Des Weiteren habe ich das Gefühl, dass du grundsätzlich arge Probleme mit der Beschreibung deiner Probleme hast. Immer wieder scheinen helfende Forumsleser nachfragen zu müssen, wo deine Probleme liegen. Du solltest stets darauf achten, dass die Leser dieses Forums nicht sehen, was du siehst, nicht denken, was du denkst und auch nicht wissen, was du weißt. Zu schreiben, dass noch immer eine Fehlermeldung erscheint, mit der du nichts anfangen kannst, wird demnach niemand hier lösen können, ohne von dir noch zu erfahren, um welche Meldung es sich in welchem Kontext überhaupt handelt. Versetze dich also immer (!) in die Lage der Forumsleser, die dein Problem nicht kennen. Mit anderen Worten: Stell dich doof. Tu mal so, als ob du nicht die geringste Ahnung von dem hast, worum es in deinen Forumsbeiträgen geht. Lies deine Beiträge (noch vorm Abschicken, also in der Vorschau) durch, am besten mehrfach. Du wirst an manchen Stellen sicher schnell feststellen, dass Fragestellungen á la "Ich brauche Hilfe" nicht sehr aussagekräftig sind. Ferner wirst du dir selbst die Frage stellen: "Was will dieser Java_Neuling eigentlich und welches Problem hat er nun genau?" Also.... Probleme beschreibt man im Ideallfall wie folgt: Zusammenfassen, woran man überhaupt erstmal arbeitet. Anschließend darauf eingehen, woran man im Detail arbeitet (die Stelle, an der sich das Problem ergab, ohne das Problem selbst zu schildern). Dann erst eine genaue Beschreibung deines Problems machen (Welcher Fehler tritt unter welchen Umständen in welcher Form auf? Was genau funktioniert nicht? etc.). Daraufhin wird geschildert, was bereits alles unternommen wurde, um Abhilfe zu schaffen (Stichwort: Eigeninitiative). Im Anschluss dein Gesuch zusammenfassen, um dem Leser kurz und bündig nochmal die eigentliche Frage vor Augen zu führen. Vor allem aber solltest du eines bereits im Vorhinein erledigt haben: Suche selbst in den Weiten des Internets sowie auch in diesem Forum nach der Lösung eines ähnlichen oder gar des gleichen Problems. Lies dich schlau, ehe du dich an uns wendest! Es gibt hunderte von erstklassigen Tutorials, Hilfestellungen und Dokumentationen auf dieser Welt, die dir sehr viel schneller eine Lösung hätten bieten können, als es dieses Forum jemals könnte. So wäre beispielsweise die Frage nach der Meldung "Unhandled Exception" nicht nötig gewesen, ja sogar die Frage nach der Arbeit mit formatierten Textfeldern. Das Bild, welches ich bislang von dir vor Augen habe ist, dass du bei jedem Pups jemanden fragen willst, anstatt selbst mal zu schauen, was getan werden könnte/sollte. Gewöhne dir an, die Alternativen eines Forums zu nutzen. (Das soll keinesfalls heißen, dass du nie wieder im forum etwas fragen sollst! Das sollst du nur in denjenigen Fällen, in denen du wirklich keine Lösung findest - nirgends.) Bitte fasse diese "Standpauke" von mir nicht böse auf. Die ist echt lieb gemeint. Würde ich es böse mit dir meinen, hätte ich ganz sicher nicht die Zeit geopfert, so viel Text zu schreiben. Darüber hinaus hätte ich auch ganz andere Worte gefunden, um dir obigen Standpunkt klar zu machen. Betrachte es folglich als einen Wink mit dem Zaunpfahl. In diesem Sinne. Ändere deine Arbeitsweise ins Positive! Back2Topic... Zu guter Letzt noch zwei Worte zum Thema: Swing Tutorial Ja, das geht auch genauer: Formatted Textfield Ergänzend noch Folgendes: visuelle Übersicht der Swing-Komponenten
-
Mit if (String.matches(String)) {} lagst du schon mal gar nicht falsch. Aber was genau kriegst du bei Verwendung der Methode String.matches(String) nicht hin? Ich kann nur vermuten, dass dein regulärer Ausdruck nicht korrekt war oder dass der Code "drumherum" nicht ganz richtig läuft. Denn Sourcecodes wie private boolean fileMatchesRegExp(File aFile, String aRegularExpression) { return aFile.getName().matches(aRegularExpression); }sollten bei solch übersichtlichen Ausmaßen keine Probleme darstellen und einwandfrei funktionieren. Und diesen Spaghetti-Code mit der Schleife...? Eieiei...! Nagut, ganz sooo schlimm ist es nicht, aber das macht es noch lange nicht zu schönem Code. Es gibt sehr viel elegantere Lösungen. Finde und nutze sie. Lies dich durch die Tutorien der von Pinhead und mir gesendeten Links und du wirst fündig.
-
Hab grad keine Zeit, daher nur ganz kurz: Suche doch diesbezüglich mal in der Suchmaschine deiner Wahl nach "regular expression java", das erste Suchergebnis sollte bereits helfen können.
-
Wenn ich dich richtig verstehe, ist für dich an dieser Stelle "Reguläre Ausdrücke" ein Thema, mit dem du dich beschäftigen könntest. Mit regulären Ausdrücken, auch Regular Expressions genannt, kannst du Zeichenketten auf eben solche Merkmale untersuchen, wie zum Beispiel Teilstrings mit, die durch Sternchen * maskiert wurden. Weitere Infos findest du unter Anderem auf folgenden Seiten: Wikipedia-Artikel zu RegExp RegExp-Tutorial auf regenechsen.de Forensuche von fachinformatiker.de Ansonsten schau mal im Internetz nach "regular expressions", ergänzend hängst du noch ein "tutorial" ran.
-
Nee, ich meinte, du musst die Zeichenkennte direkt in die Scrollpane eintippen (meinetwegen einmal mit der Maus reinklicken für den Fokus), nicht ins Textfeld. Du siehst zwar nicht, was du tippst, aber die Markierung springt auf die entsprechende Datei oder das entsprechende Verzeichnis. Das ist so, als würdest du im Dateiexplorer von Windows "wild" drauf lostippen. Da wird auch die passende Datei entsprechend deinem Getippe selektiert.
-
nicht nötig, das funktioniert bereits.
-
Jaja, das hab ich schon verstanden. Wie man auf das besagte Textfeld zugreift, weiß ich nun wirklich nicht. Ich schätze, das wird auch nicht so leicht sein. Ein schneller Blick in die Sourcen des JFileChooser offenbarte mir, dass du da wohl etwas suchen werden musst. Daher bleiben dir wahrscheinlich nur die folgenden drei Möglichkeiten: - einen ganz eigenen FileChooser schreiben (dieser Aufwand wird sicher nicht lohnen) - den JFileChooser überschreiben, das Textfeld ausfindig machen und es entsprechend abfragen nach jeder Texteingabe - es einfach bleiben lassen Letzteres halte ich persönlich für die sinnvollste Sache, da das von dir gewünschte Dialogverhalten recht ungewöhnlich ist, wenn auch komfortabel. Ich denke, ein Benutzer wird auch damit klar kommen, wenn die Dateien nicht nach der im Textfeld angegebenen Zeichenkette eingegrenzt werden. Das ist schließlich das übliche Verhalten von Dateiauswahldialogen (zumindest wie ich sie kenne). Nebenbei erwähnt, kann man in der Scrollpane mit der Liste aller auswählbaren Dateien auch etwas eintippen. Zwar wird dadurch die Liste nicht eingegrenzt auf diejenigen Dateien, die mit der eingegebenen Zeichenkette beginnen, aber zumindest springt die Selektion auf die erste Datei, deren Name der Zeichenkette entspricht. Reicht dir das nicht schon? Puh, du stellst aber auch fragen...