
PerdianMG
Mitglieder-
Gesamte Inhalte
103 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von PerdianMG
-
Ahnung davon, was du machen willst.
-
Nope, JDBC reicht. Ciao Chris
-
An einem _könnte_ es liegen: Wenn du noch die alte Microsoft VM im IE am laufen hast, muss die Klasse mit -target=1.1 kompiliert werden, damit der dumme alte IE alles richtig mitbekommt. Christian
-
Naja es hängt immer vom LayoutManager ab, in welcher Weise deine Angaben auch tatsächlich weiterverarbeitet werden. Was oft weiterhilft: Von JButton ableiten und getPreferredSize() und getMinimumSize() überschreiben, mit den Größen, die du gerne haben willst. Ciao Chris
-
Naja aber _was_ genau Rekursion ist weisst du, oder? Wenn ja sollte die ganze Aufgabe eigentlich kein Problem sein, ich versuchs mal aus dem Stand: Die Methode copyFile erspare ich mir mal, das dürfte trivial sein. public void copyDirectory(File sourceDirectory, File destinationDirectory) { File[] sourceFiles = sourceDirectory.listFiles(); for(int i=0; i < sourceFiles.length; i++) { File newFile = new File(destinationDirectory, sourceFiles[i].getName()); if(sourceFiles[i].isFile()) { this.copyFile(sourceFiles[i], newFÃle); } else { this.copyDirectory(sourceFiles[i], newFile); } } }
-
Ich kenne hier keine bekannten Intervall-Klassen, aber im Grunde genommen musst du dich mal genauer mit java.util.Calendar befassen, der bietet im Grunde genommen alle Methoden, die du brauchst. Als kleiner Einstieg mal ein paar Methoden, die ich zu dem Thema schon geschrieben habe: public class MiscUtil { // ... /** * Gets the date that fits into the given hour time the next time * @param hour * the hour of the time * @param minute * the minute of the time */ public static Calendar getNextDateForTime(int hour, int minute) { return MiscUtil.getNextDateForTime(hour, minute, 0); } /** * Gets the date that fits into the given hour time the next time * @param hour * the hour of the time * @param minute * the minute of the time * @param seconds * the seconds of the time */ public static Calendar getNextDateForTime(int hour, int minute, int seconds) { if(hour < 0) { Calendar newDate = Calendar.getInstance(); newDate.set(Calendar.MINUTE, minute); newDate.set(Calendar.SECOND, minute); if(newDate.getTime().getTime() < System.currentTimeMillis()) { newDate.add(Calendar.HOUR_OF_DAY, 1); } return newDate; } else { Calendar currentDayDate = MiscUtil.getTimeCurrentDay(hour, minute, seconds); if(currentDayDate.getTime().getTime() < System.currentTimeMillis()) { return MiscUtil.getTimeNextDay(hour, minute, seconds); } else { return currentDayDate; } } } /** * Gets the specified time at the next day * @param hour * the hour of the time * @param minute * the minute of the time */ public static Calendar getTimeNextDay(int hour, int minute) { return MiscUtil.getTimeNextDay(hour, minute, 0); } /** * Gets the specified time at the next day * @param hour * the hour of the time * @param minute * the minute of the time * @param seconds * the seconds of the time */ public static Calendar getTimeNextDay(int hour, int minute, int seconds) { Calendar rightNow = Calendar.getInstance(); // Jump to next day rightNow.set(Calendar.DAY_OF_YEAR, rightNow.get(Calendar.DAY_OF_YEAR) + 1); rightNow.set(Calendar.HOUR_OF_DAY, hour); rightNow.set(Calendar.MINUTE, minute); rightNow.set(Calendar.SECOND, seconds); return rightNow; } /** * Gets the specified time at the current day * @param hour * the hour of the time * @param minute * the minute of the time */ public static Calendar getTimeCurrentDay(int hour, int minute) { return MiscUtil.getTimeCurrentDay(hour, minute, 0); } /** * Gets the specified time at the current day * @param hour * the hour of the time * @param minute * the minute of the time * @param seconds * the seconds of the time */ public static Calendar getTimeCurrentDay(int hour, int minute, int seconds) { Calendar rightNow = Calendar.getInstance(); // Jump to next day rightNow.set(Calendar.HOUR_OF_DAY, hour); rightNow.set(Calendar.MINUTE, minute); rightNow.set(Calendar.SECOND, seconds); return rightNow; } /** * Gets the next hour that is approching as <code>Date</code> object */ public static Calendar getNextHour() { Calendar rightNow = Calendar.getInstance(); int currentHour = rightNow.get(Calendar.HOUR_OF_DAY); rightNow.set(Calendar.HOUR_OF_DAY, currentHour + 1); rightNow.set(Calendar.MINUTE, 0); rightNow.set(Calendar.SECOND, 0); return rightNow; } } Willst du beispielweise das Runnable Object R1 zur nächsten vollen Stunde starten lassen bietet sich folgendes Konstrukt an: Timer timer = new Timer(); TimerTask myTimerTask = new IrgendeinTimerTask(); timer.schedule(myTimerTask, MiscUtil.getNextHour().getTime()); Ciao Chris
-
Naja gehen würde es wahrscheinlich schon aber was machst du, wenn jemand Applets nicht anzeigen kann (oder es absichtlich ausgeschaltet hat) und kein JavaScript unterstützt? Du wirst um eine serverseitige Überprüfung nicht drumrumkommen. Ciao Chris
-
Einfach mal eine Idee so in den Raum hinengeworfen: Eclipse-Versionen unter 3.0M3 haben bei mir irgendwann mal Probleme mit JDK 1.4.2 gemacht, da muss wohl Sun irgendwas JNI-mäßiges umgestellt haben, was bei Eclipse wie gesagt erst ab der M3 wieder funktioniert - vielleicht liegt's ja daran. Ciao Christian
-
Nein, so etwas gibt es unter Java nicht. Arrays können immer nur numerische Werte als Indizes verwenden. Man könnte das ganze natürlich simulieren indem du folgendes Konstrukt erstellst: public static final int A = 0; public static final int B = 1; ... String[] meinArray = new String[26]; meinArray[A] = "test"; aber das wäre eigentlich nur Blödsinn :-) Ciao Chris
-
Ich versuch mal ein bisschen was zu erklären: Servlet Ein nach bestimmten Kriterien aufgebautes Object - eigentlich ist das einzig besondere, dass es javax.servlet.Servlet implementiert und damit in einem ServletContainer verwaltet und aufgerufen werden kann. Framework Eine Gruppe von Objekten, die zusammen eine bestimmte klar umrissene Aufgabe erfüllen. Ein Logging-Framework z.B. definiert (je nach Umfang) mehr oder weniger komplexe Möglichkeiten zur Laufzeit Nachrichten zentral zu empfangen. Das schon angesprochene Collection-Framework bietet Möglichkeiten Daten in Datenstrukturen zu gruppieren, etc. JSP Hängt sehr stark mit Servlets zusammen (ist intern auch nichts anderes) aber bietet nach aussen hin eine andere Ansicht für den Programmierer. Ganz grob umrissen ist es in etwa wie PHP, nur dass du als dynamischen Inhalt Java-Code verwenden kannst. XML Datenbeschreibungssprache, die es sehr einfach ermöglicht Text-Daten (und in ganz geringem und Umfang auch andere Daten) in eine Struktur zu setzen, die plattform- und programmiersprachenunabhängig ausgelesen werden kann. JavaBeans Ein Bean ist einfach nur ein "normales" Object, dass bestimmte Eigenschaften definiert. Beispielsweise hat ein Bean eine bestimmte Anzahl an Properties, die über standardisierte getter und setter Methoden ausgelesen werden können. Hope that helps Chris
-
Ich weiss nicht ob das Beispiel mit der Post und dem Empfänger so gut geeignet ist um den Begriff der Polymorphie auszudrücken, das würde ich anders ausdrücken: Wir haben eine Klasse "Beförderungsgegenstand", die bestimmte Eigenschaften hat. Dem Postboten, der die Pakete oder Briefe ausfährt ist es (im großen und ganzen *g*) egal, ob er nun eine Werbesendung oder ein Einschreiben ausliefert - es sind halt für ihn alles nur abstrakte Beförderungsgegenständer. Für mich als Empfänger spielt es ber eine ganz andere Rolle: Eine Einschreiben vom Gerichtsvollzieher ist ganz anders zu behandeln als die neuesten Werbeangebote der Geiz und Geil Märkte - und das ist schon Polymorphie. Zwei Objekte (ich und der Postbote) betrachten ein drittes Object (den Brief) aus unterschiedlichen Blickwinkeln und doch bleibt der Brief an sich jedesmal gleich. Ciao Chris
-
Naja Polymorphie an sich hat erstmal gar nichts mit Mehrfachvererbung zu tun, sondern besagt ganz einfach, dass ein Object die Eigenschaft hat als verschiedene Dinge in Erscheinung zu treten. Nehmen wir dochmal eine Klasse (oder noch besser ein Interface), die eine Methode enthält: public abstract Medium[] getMedium(Object[] irgendwelcheParameter); Je nach Implementierung, könnte die diese Methode jetzt die verschiedensten Medien zurückgeben. Als Vererbungsbaum vielleicht so Medium -- Textmedium ------ Zeitschrift ------ Buch -- Elektronisches Medium ---- CD ------ CD-ROM ------ DVD -- ... Polymorphie heisst jetzt nichts anderes, als das die genauen Medien im Array, die verschiedensten Implementierungen sein können, also beispielweise medium[0] = new Zeitschrift(); medium[1] = new DVD(); und so weiter Ciao Christian
-
Guck dir am besten mal die API zu java.net.URLClassLoader an - der macht nämlich genau das, was du willst (wenn ich dich richtig verstanden habe *g*) Ciao Christian
-
Dürfte interessante Methoden ergeben Dozent d = new Dozent(); d.openCase(); d.ejectCD(); *lol* Ciao Christian
-
Check mal unter Systemsteuerung -> Java Plugin ob dort die Option Browser -> Java Plug-in wird als Standard-Java-Laufzeitprogramm... aktiviert ist. Wenn nicht, aktivieren und dann läuft (hoffentlich) alles. Wenn das auch nicht klappt, dann das komplette SDK nochmal installieren, vielleicht gehts dann. Ciao Christian
-
Nein, die richtige Lösung lautet definitiv nicht Vererbung, denn das würde - wie schon angesprochen - überhaupt keinen Sinn machen. Entweder ist da irgendwem beim Zusammmenstellung der Fragen ein Tippfehler unterlaufen, oder aber ein wirklich großer Patzer - auf jeden Fall ist es die komplett falsche Antwort. Ciao Christian
-
Dann hätte ich - anstatt hier auf Antwort zu warten - lieber mal versucht selber zu recherchieren, was ich brauche um das Problem zu lösen. Das eigentliche Programm selber ist wahrscheinlich in zehn Zeilen oder weniger zu lösen - die Method fac(int n) ist rekursiv sogar ein Einzeiler. Die zwei Überlegungen, die du anstellen musst sind auch ganz einfach: - Was genau ist die Fakultäts-Funktion - Wie willst du sie umsetzen (rekursiv/iterativ) Mit ein bisschen Java-Grundkenntnissen ganz schnell gelöst, aber deine Hausaufgaben vorrechnen wird dir hier niemand. Ciao Christian
-
Fragen zur Ausbildung zum Fachinformatiker-SI
PerdianMG antwortete auf -mX-128's Thema in Ausbildung im IT-Bereich
Die gesamte Zeit, oder zumindest anteilig, da du ja deine Freizeit (oder eben auch nicht-Freizeit nicht so normal planen kannst, wie du das tun würdest, wenn du keinen Bereitschaftsdienst hättest... aber wie gesagt, da müsste ein Experte für Arbeitsschutz mehr wissen. Wie schon jemand ander gesagt hat: Es macht den Text unangenhem zu lesen. Großschreibung wird nunmal allgemein als SCHREIEN interpretiert - wenn du das damit aussagen möchtest Bitteschön *g*. Aber um im Text Dinge _hervorzuheben_ gibt es *andere* Möglichkeiten, wie man hier ja /sehr/ schön sehen kann. Ciao Christian -
Fragen zur Ausbildung zum Fachinformatiker-SI
PerdianMG antwortete auf -mX-128's Thema in Ausbildung im IT-Bereich
Natürlich darfst du Überstunden machen... IIRC gelten in solchen Dingen für dich (da über 18 Jahre) die gleichen Regeln wie für jeden "normalen" Arbeitnehmer auch. Natürlich darfst du das. Erst ab drittem Lehrjahr ist Blödsinn. Du darfst genau dann alleine draussen beim Kunden arbeiten, wenn dein Chef denkt, dass du die Eignung dazu besitzt - schließlich ist er (oder besser gesagt seine Firma) auch derjenige, der später dafür haften muss, wenn du irgendwas falsch machst. Selbstverständlich darf er das von dir verlangen - wieso auch nicht? Solange alles innerhalb der Arbeitszeitvorschriften (in welchem Gesetz das gerade steht ist mir entfallen) bleibt ist das vollkommen in Ordnung. Die Zeit in der du Support leistest muss dir natürlich in irgendeiner Art und Weise angerechnet werden (ob das als Arbeit oder Bereitschaft gilt weiss ich nicht, müsstest du mal 'nen Fachmann für Arbeitsrecht fragen). Generell gilt: Als volljähriger Azubi hast du keine besonderen Ausnahmeregelungen. Wenn dir die Arbeit nicht gefällt, dann hätte ich den Arbeitsvertrag nicht unterschrieben und da gar nicht erst angefangen - sowas klärt man vorher ab. Ach ja: Deine Shift und !-Tasten klemmen. Ciao Christian -
Javadoc tut's da aber auch :-) /** * Returns the address to which the socket is connected. * * @return the remote IP address to which this socket is connected, * or <code>null</code> if the socket is not connected. */ public InetAddress getInetAddress() { ... Ciao Christian
-
Ja aber sicherlich doch: http://gcc.gnu.org/java/ Für einfache Konsolenanwendungen klappt das einwandfrei und es soll Leute geben, die auch komplexe SWT-Anwendungen damit kompiliert bekommen. Ciao Christian
-
Dein Problem liegt am Prinzip eines InputStream. Wenn keine Daten mehr vorhanden sind, wir solange geblockt, bis wieder etwas da ist. Zu deinem Beispiel: 01 Process pr = Runtime.getRuntime().exec(javahome + "java -classpath " + classPath + " " + klasse); 02 03 InputStream is = pr.getInputStream(); 04 System.out.write(is.read()); 05 InputStream es = pr.getErrorStream(); 06 System.out.write(es.read()); Erstmal wird überhaupt nichts passieren, bis du in Zeile 03 aus dem InputStream Daten erhälst. Hiervon gibst du dann ein einziges Byte aus (das erste halt) und danach machst du mit dem InputStream überhaupt nichts mehr. Danach geht dasgleiche mit dem ErrorStream nochmal von vorne los - du wirst also maximal zwei Bytes auf der Console ausgeben können und das wars. Die Lösung für dein Programm sind zwei Threads, die die Daten der Streams auffangen und auf die Console weitergeben: Alles ungetestet, aber sollte eigentlich funktionieren :-) Ciao Christian public class TestClass { public static void main(String[] args) { Process pr = Runtime.getRuntime().exec(javahome + "java -classpath " + classPath + " " + klasse); InputStream inStream = pr.getInputStream(); InputStream errorStrean = pr.getErrorStream(); StreamRelayThread inRelay = new StreamRelayThread(inStream, System.out); StreamRelayThread errorRelay = new StreamRelayThread(errorStream, System.err); inRelay.start(); errorRelay.start(); inRelay.join(); errorRelay.join(); } } public class StreamRelayThread extends Thread { private InputStream myInStream = null; private OutputStream myOutStream = null; public StreamRelayThread(InputStream inStream, OutputStream outStream) { this.myInStream = inStream; this.myOutStream = outStream; } public void run() { try { for(int data = this.myInStream.read(); data > -1; data = this.myInStream.read()) { this.myOutStream.write(data); } } catch(IOException e) { e.printStackTrace(); } } }
-
Wenn du nicht unbedingt eine Hashtable benötigst (weil im 1.1er Applet) sondern auch die neuere Map verwenden kannst dann solltest du dir mal die LinkedHashMap ansehen, die macht nämlich genau das was du willst. Die Einträge bleiben schnell über eine interne HashMap erreichbar und beim Iterieren mit einem Iterator bekommst du die gleichen Reihenfolge, in der die Elemente in die Map eingefügt wurden. Ciao Christian
-
Also prinzipiell kannst du in einer JSP Seite alles das machen, was du in einer "normalen" Applikation auch kannst (von GUI natürlich mal abgesehen) also sollte auch die JTAPI einbindung drin sein. Ciao Christian
-
Also die Meldung in Zeile 9 finde ich dann doch etwas seltsam :-) Ciao Christian