-
Gesamte Inhalte
2093 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von kingofbrain
-
Naja, die Tutorials findest Du im Internet, nicht in einer Unibibliothek. Das wissen wir ja alle, dass das Internet nicht der Hort des Guten und Reinen ist, sondern oft ziemlichen Müll beinhaltet. Und so ist das bei Tutorials eben auch (in meinen Augen nicht nur UML-Tutorials, sondern in der Softwareentwicklung erschreckend viele): wenige Perlen neben viel Schrott. Peter
-
Ach so. Ich kenne den Algorithmus jetzt nicht und habe auch keine Zeit, mich einzulesen. Aber Du verwendest oft den Datentyp short. Ein beliebter Fehler ist, zu vergessen, dass short ein signed Datentyp ist (wie fast alle anderen primitiven Zahl-Datentypen in Java außer char auch). Vielleicht liegt da der Fehler Peter
-
Was verstehst Du denn unter einer Zeitschleife. Ich habe unnwillkürlich Punxsutawney und Phil das Murmeltier vor Augen. Wenn es Dir darum geht, eine bestimmte Zeit zu warten, bis Du etwas einmal oder wiederholt ausführst, dann solltest Du das Rad nicht neu erfinden. Mein Tipp: einarbeiten in den Timer oder Quartz Scheduling verwenden. Das ist sehr mächtig und auch einigermaßen dokumentiert (mein Stand ist allerdings schon zwei Jahre alt). Quartz - Quartz Overview Peter
-
Ich glaube, Du unterschätzt die Komplexität und Vielseitigkeit von UML. Für den einen (Entwickler) ist UML eine tolle Möglichkeit, um seine Klassen visuell darzustellen. Für einen Business Analysten ist UML mit seinen Use Case und Activity Diagrams perfekt zur Geschäftsprozessmodellierung, der dritte will sich einen Workflow oder eine technische Schaltung über ein State Diagram verdeutlichen. Und das sind nur wenige Beispiele. Ich halte Kurse, die sich mit der UML nur an Fachverantwortliche in Firmen richten. Dort bin ich froh, wenn ich überhaupt Klassendiagramme durchnehmen kann, weil das teilweise schon sehr weit von dem Abstraktionsgrad weg ist, den meine Teilnehmer können. Wenn ich dann aber einen Kurs für Entwickler mache, dann wollen die genau das Gegenteil: Technik bis in die Tiefe. Und deshalb sind viele Tutorials so unterschiedlich. Ich gebe Dir allerdings recht: es gibt viele unnütze und schlechte Tutorials von Leuten, die sich halt auch mal zum Thema auslassen wollen. Das hat aber nichts mit UML zu tun. Im Zweifelsfall und bei Strittigkeiten kannst Du immer noch die Spezifikation(en) bei der Object Management Group durchschauen, wie etwas gemeint ist, oder Dich in den dortigen Mailinglisten umhören. Aber das Chart von der oose ist natürlich eine tolle Gedächtnisstütze und ein Nachschlagewerk. Wenn es wissenschaftlicher sein darf: die Lehrbücher von Prof. Heide Balzert (z.B. "UML 2 kompakt") oder Jeckles "UML 2 glasklar". Das sind in meinen Augen Standardwerke zum Thema, allerdings in beiden Fällen sehr umfangreich und vielseitig und nicht dazu geeignet, sich nur auf die Abschlussprüfung als FI vorzubereiten. Man sollte schon ein bisschen mehr Interesse mitbringen. Schöne Grüße, Peter
-
Naja, ich weiß nicht, was nicht klappt. Vielleicht solltest Du beschreiben, was Du erwartest und was Du bekommst. Ich bekomme die Klasse kompiliert und ausgeführt und erhalte zwei Zeilen Ausgabe auf der Shell. Peter
-
Servus, wieso lachen? Lehrer ist doch auch ein schöner Beruf. In meinen Augen ist es gar nicht so interessant, mit welcher Sprache man anfängt, sondern dass man ein Problem lösen möchte. Ob das die private CD-Verwaltung ist, die man mit Access und VB strickt, oder ein kleines Konsolennetzwerkspiel mit Java oder C, oder ob man für den Rechner Skripte in Perl, Python, Ruby oder Ähnlichem schreibt. Ich arbeite seit langem mit Java und komme mit der Sprache recht gut klar. Deshalb kann ich sie auch empfehlen. Gerade wenn man neben dem reinen Programmieren auch etwas über Objektorientierung lernen will, geht das mit Java ganz gut (auch wenn es keine reine OO-Sprache ist). Für den Einstieg kann es bis zum Erhalten erster Erfolge leichter sein, mit einer Skriptsprache wie Python oder Ruby anzufangen, weil man erst mal einfach drauf los schreibt. Bei Java hat man in meinen Augen schon erst mal eine steilere Lernkurve. Am besten suchst Du Dir ein kleines Projekt aus, das Du umsetzen möchtest und teilst uns das mit. Dann können wir Dir besser und gezielter Tipps geben. So ist es eher ein Stochern im Nebel und jeder kommt mit seiner Lieblingssprache (so wie ich) an. Schöne Grüße, Peter
-
Servus, ich muss mich leider ausklinken. Meine Zeit reicht nicht aus, um bei Adam und Eva anzufangen und Dir bis zu Hibernate, JDBC, JaxB usw. alles zu erklären. In meinen Augen ist das Grundproblem schon, dass Du Dir keine Gedanken zu dem System an sich machst, sondern einfach ziellos anfängst (Hibernate verwenden wollen und sich eine Connection für JDBC geben lassen). Viel Erfolg! Peter
-
Ich kann leider mit Deinen Beschreibungen relativ wenig anfangen. Lass uns doch noch mal einen Schritt zurück gehen. Wie sieht der Aufbau für Dich aus? Du willst einen Web Service, der was tut. Auf welcher Plattform wird der laufen? JBoss? Dann können wir das auch verwenden. Wenn er in Produktion dann nämlich auf einem Tomcat läuft, musst Du wieder schauen, wie Du die JCA-Connection dort integrierst. Mit welchem Framework wirst Du den Web Service schreiben? Axis, JBossWS, ...? Wie soll das Design Deiner Anwendung sein? Du sagst, es gibt einen Suchservice, aber dann sprichst Du davon, dass Du nicht weißt, wie Du auf die Datenbank zugreifst. Was denn? Und solltest Du auf die Datenbank zugreifen müssen, wie möchtest Du das abkapseln? JDBC DAO, Hibernate, JDO, ...? Erst wenn Du diese Themen ausreichend geklärt hast, also ein Konzept für Architektur und Design der Anwendung hast, dann kann man weitermachen. Ansonsten ist es so, wie wenn Du in einem Kfz-Mechaniker Forum auftauchst und fragst, wie Du denn den Motor zerlegst, aber noch nicht weißt, welches Auto Du hast oder ob es vielleicht ein Boot oder ein Fahrrad ist. Peter
-
Servus, bist Du Softwareentwickler? Hast Du Erfahrung mit Java Webservices, JDBC, Java EE oder Ähnlichem? Wenn nein, bist Du in meinen Augen der Falsche für die Aufgabe, weil Dir die Grundlagen fehlen. Es ist nicht damit getan, im JBoss eine JCA-Konfiguration für die Anbindung einer MySQL einzufügen, Du musst auch an der geeigneten Stelle über JNDI (neues Schlagwort, das Du kennen solltest) diese Connection verwenden können. Erklär mal, was Du an Vorwissen hast, dann kann man sehen, ob es sich lohnt, hier weiterzumachen. Peter
-
Und genau den Grund für dieses Springen wollte ich ja wissen. Wenn es so ist, wie ksg9-sebastian gesagt hat, und sie in der kompletten Datei quasi byteweise nach Tags sucht, dann macht das natürlich einen Sinn. Ich habe genau diese Funktionalität in meiner Ausbildung auch codiert, und damals (2003) war die MP3-Spezifikation so, dass ab einer bestimmten Stelle in der Datei die Tags abgelegt waren. Man musste also nur diese Stelle finden und alles danach (vermutlich bis zu einem bestimmten Endpunkt) auslesen und interpretieren. So ähnlich wird es immer noch sein. Peter
-
Ich verstehe nicht, warum Du bei einer initial nicht erfolgreichen Suche den Zeiger in der Datei um 3 Byte zurücksetzt und wieder 4 Byte liest. Wenn Du keinen Treffer hast, dann sollte doch ein neuer Interpret da sein, den Du Dir für den Vergleich merken musst. Ansonsten kann man zur Performance erst etwas sagen, wenn man Deinen Quellcode sieht. Davor ist alles Spekulation. Peter
-
Also mein C ist ein wenig eingerostet, deshalb ohne Gewähr: Du definierst eine Variable b, startest eine Schleife und liest in dieser Schleife so lange Werte aus der Standardeingabe in die Variable b, bis die Zahl "0" eingegeben wurde. Wo ist Deine Matrix? Und warum hörst Du beim ersten "0" auf? Wenn ich beim ersten Mal "0" eingebe, ist der Spaß vorbei. Definier also zu "b" noch Deine Matrix (int[][] matrix - evtl. musst Du die noch initialisieren, da kenne ich C zu schlecht) und lese die Werte in diese Matrix ein. Die einfache Schleife mit Deiner Abbruchbedingung hilft Dir da nicht. Du wirst vermutlich eine geschachtelte Schleife brauchen. In der ersten iterierst Du durch die Zeilen und in der zweiten durch die Spalten jeder Zeile. Dann sind Deine Abbruchbedingungen auch nicht die Eingabewerte, sondern die Länge der Arrays in Deiner Matrix. Hier mal ein bisschen Pseudocode: initialisiere Matrix und Eingabewert Variablen sowie Zählvariable für Spalte und Zeile (jeweils 0) Solange die aktuelle Zeile < der letzten Zeile in der Matrix ist Solange die aktuelle Spalte < der letzten Spalte in der Zeile ist Lies einen Wert ein und speichere ihn in der Matrix an der Stelle Zeile / Spalte Peter
-
Die UC-Schablone kann mehr als ein Aktivitätsdiagramm, sie stellt neben dem Ablauf im Use Case auch noch andere Daten dar (Akteure, Vor- und Nachbedingungen, ...). Sie ist aber nicht standardisierter Teil von UML. Zur Frage: Ich überlege bei solchen Themen immer, wie detailliert will ich es beschrieben haben, damit ich genau weiß, was passiert. Wenn mir dann jemand sagt, gib Deinen Namen und Deine Adresse an, dann weiß ich, was das ist. Wenn er aber sagt "gib die Daten zur Registrierung an", dann will ich vielleicht noch genauer wissen, was gefragt ist. In meinen Kursen sag ich hier aber immer: fragt Eure Kunden. Der Kunde muss sich im beschriebenen Prozess wiederfinden. Der eine sagt: "super, mir reicht die Angabe, dass ich meine Daten eintragen soll", der andere will lieber alles detailliert haben. Die UC-Diagramme und -Beschreibungen werden nicht zum Selbstzweck erstellt, sondern dienen der Kommunikation zwischen Fachseite und IT. Und damit sind sie Arbeitsdokumente und den Grad der Detaillierung bestimmen die Kommunikationspartner. Schöne Grüße, Peter
-
Ob Haus- oder Klausuraufgabe ist im Prinzip das selbe. Bei Studenten finde ich persönlich es ein wenig dreister, wenn nach einer Komplettlösung gefragt wird, weshalb Du hier voraussichtlich (von mir auf jeden Fall) keine Lösung kriegen wirst. Du hast in Deinem Beispiel ja schon gezeigt, dass Du (oder der Ersteller des Beispiels) weiß, wie Werte eingelesen werden. Jetzt überleg, was Du machen musst, damit Du die Werte für eine Matrix (Array von Arrays) erhältst (Stichwort Schleife). Und jetzt noch mal die Aufgabe an Dich: Arbeite an der Lösung und komm mit konkreten Problemen wieder. Deine skizzierte Matrix aus Deinem zweiten und dritten Post gilt nicht als Lösungsversuch. Peter
-
Wer ist denn der "Absender"? Das Textfeld? Dann ist getSource() schon das, was Du brauchst. Ansonsten musst Du einen KeyListener definieren, der an sich schon eine Unterscheidung in sich trägt (z.B. in Form eines Objektattributs, das auf die Quelle schließen lässt. Dann kannst Du den unterschiedlichen "Absendern" jeweils ihren speziellen KeyListener mitgeben, der dann nicht im KeyEvent nachschauen muss, wer der "Absender" ist. Beispiel (ungetestet, weil nur hier reingeschrieben): class ParameterizedKeyListener implements KeyListener { private int source; public ParameterizedKeyListener(int source) { this source = source; } public void keyXY(KeyEvent event) { // check source and react } } [...] texfield1.addKeyListener(new ParameterizedKeyListener(1)); textfield2.addKeyListener(new ParameterizedKeyListener(1)); [...] Ob Dein Absender jetzt durch eine Zahl wie bei mir oder durch irgendwas anderes identifiziert wird, musst Du selbst besser wissen, weil Du ja weißt, was Du mit der Information tun willst. Peter
-
Servus, ich versteh leider nicht, warum Dein "plus" ein int ist, dass Du mit zu den Zahlwerten addierst. Es sollte doch eigentlich so ablaufen (Pseudocode): Zahlen erhalten und Operator erhalten Wenn Operator ist "plus" addiere Zahlen Ansonsten wenn Operator ist "minus" subtrahiere Zahlen Ansonsten wenn Operator ist "mal" multipliziere Zahlen Ansonsten wenn Operator ist "geteilt" dividiere Zahlen Jetzt kannst Du für den Operator schon eine Zahl nehmen, die Du aber nicht mit verrechnest, sondern nur zur Prüfung verwendest, welche Operation Du durchführen willst. Peter
-
Hmm, dann gibt es zwei Möglichkeiten: - Du hast nicht aufgepasst oder gelernt - Du bist im falschen Kurs Stell eines von beiden ab, dann sollte das klappen. Sollst Du den Algorithmus entwickeln, oder das ganze in einer Programmiersprache umsetzen? Was hast Du, was fehlt Dir konkret? Deine Hausaufgaben wird hier niemand machen. Peter
-
Also ich kann jetzt nur raten, was Du meinst. Wenn Du allerdings an die per JNDI ermittelte Bean die UserID in einem Methodenaufruf übergeben willst, dann muss es in dieser Bean eine solche Methode geben. Die rufst Du auf und gibst die Variable mit. Wenn das nicht das ist, was Du wissen willst, solltest Du noch mal Deine Frage überarbeiten. Peter
-
Servus, das einzige keyDown, das ich kenne, ist seit dem JDK 1.1 deprecated und aus der Klasse Component. Schau Dir besser ein aktuelles Tutorial an, wenn Du mit Event Handling anfangen willst. Trail: Creating a GUI with JFC/Swing (The Javaâ„¢ Tutorials) Peter
-
Servus, also jetzt mal kurz ohne Andeutungen und Hinweise: Du verwendest keinen java.util.Scanner, sondern einen java.io.DataInputStream. Ein DataInputStream kennt keine Methode nextLine() und deshalb meckert der Compiler das an. Bitte lies Dir die API Dokumentation für die Klasse DataInputStream durch, benutze ein Java Einsteiger-Buch und schreib nicht irgendwelche Codebeispiele ab, die Du noch nicht verstehst. Peter
-
Kollegen! Technische Details sind doch bei diesem Übungsprojekt erst mal überhaupt nicht interessant. Es geht laut Aufgabenstellung darum, mittels eines Aktivitätsdiagramms den Algorithmus zu verdeutlichen. Wir befinden uns also im fiktiven Projekt noch in der Analysephase, noch nicht in der Umsetzung. Deshalb halte ich es für sinnvoll, dass uns der OP seinen bisherigen Gedankengang in Bezug auf diesen Algorithmus mitteilt und damit auch seine bisherigen Ergebnisse. Und an den OP: verlier Dich noch nicht in technischen Details. 10 ms oder 11 ms? Erst mal wurscht! Es geht um den Algorithmus, d.h. was muss erst gemacht werden, was dann, usw. Peter
-
Ok, das hört sich doch machbar an. Wo ist Dein Ansatz? Es ist ja nicht so, als wolltest Du Deine Hausaufgaben von uns gelöst haben, sondern Du willst hier Hilfe bei einem konkreten Problem mit der Aufgabe. Wenn die Aufgabe an sich Dein konkretes Problem ist, dann solltest Du sie zurückgeben und Dir eine passendere (einfachere) geben lassen. Peter
-
Dann machs doch so, wie ksg9-sebastian beschrieben hat. Besorg Dir über Dein ZipFile den InputStream eines ZipEntry, und les den aus. -> ZipFile#getInputStream(ZipEntry) Peter
-
Naja, wenn weder er noch Du wissen, weshalb Du eine Variable setzen sollst, dann solltest Du es vielleicht besser lassen. Es gibt in einigen Tutorials diverse Tipps, welche Systemvariablen man setzen sollte (CLASSPATH, JAVA_HOME, JRE_HOME, ...), aber ich würde das nie global, sondern immer für einen speziellen Fall (z.B. in einem Batchskript zum Starten der VM) machen. Also: erst mal nichts setzen, wovon Du nicht weißt, weshalb, und dann mal loslegen. Peter
-
Problem mit Elipse/Hibernate - Bitte um dringende Hilfe
kingofbrain antwortete auf Buergy's Thema in Java
Ich habe jetzt nur den ersten Codekasten gelesen, weil ich dort einen Fehler gefunden habe. Deine Tabelle kann nicht angelegt werden, weil Du bei STOFF_ID keinen Datentyp angibst. Du solltest hier aber schon beim Anlegen der Tabelle einen Fehler erhalten. Peter