Zum Inhalt springen

PerdianMG

Mitglieder
  • Gesamte Inhalte

    103
  • Benutzer seit

  • Letzter Besuch

Beiträge von PerdianMG

  1. Guten Morgen!

    Weiß jemand, wie ich die Größe der Buttons in meinem Panel bestimmen kann, so dass sie sich nicht mehr an die Beschriftung anpassen?

    Ich hab's schon mit button.setSize(x,y) probiert- aber das klappt ja überhaupt nicht :P

    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

  2. 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);
    
        }
    
      }
    
    }
    
    

  3. 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

  4. Würde das mit nem Applets gehen, das die Felder prüft? (Die JRE 1.4.2 ist auf allen Rechnern verfügbar von denen aus zugegriffen wird)
    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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. Die Lösung lautet Vererbung.

    Und wieso nicht Assoziation???

    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

  12. Natürlich hat das schon seinen Grund warum ich das machen soll. Allerdings hab ich nicht die geringste Vorstellung wie ich das machen soll.

    Ich soll es allerdings heute abgeben.

    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

  13. "Die Zeit in der du Support leistest muss dir natürlich in irgendeiner Art und Weise angerechnet werden "

    Welche Zeit meinst du damit? Die REINE Telefonzeit oder die GANZE Bereitschaftszeit?

    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.

    "Ach ja: Deine Shift und !-Tasten klemmen."

    WIRKLICH??? .... ... .. . ich glaube meine PUNKT taste klemmt auch .... :)

    jetzt mal ernsthaft: was stört dich daran, dass ich bestimmte sachen (die mir WICHTIG erscheinen) durch großschreibung hervorheben will? (geht doch schneller, wie wenn ich das alles FETT machen würde)

    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

  14. 1. Wie schaut es mit den Überstunden aus??? Darf ich in der Ausbildung Überstunden machen?? Und wenn ja, wie viele und wie soll ich Überstunden abbauen (Geld darf ich dafür nicht nehmen, oder)
    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.

    2. Darf ich ALLEIN zum Kunden fahren und/oder darf mich mein Boss alleine beim Kunden (arbeiten) lassen??? Habe gehört, dass das erst im 3ten Lehrjahr möglich ist....???? (ich lerne doch erst)
    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.

    UND DAS WICHTIGSTE: 3. mein Boss will mir ein Handy geben und ich soll NACH DER ARBEIT UND AM SAMMSTAG telefonischen SupportDienst leisten!!!!!!!!!!!!!!!!!!!!!!! Das heißt, wenn es klingelt MUSS ich rangehen .....

    D A S F I N D E I C H V O L L ****** ! ! ! !

    Darf mein Boss so etwas von mir Verlangen???

    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

  15. 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

  16. 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();
    
        }
    
      }
    
    
    }
    
    

  17. Zur selben Zeit, wie ich den Hashtable fülle, fülle ich mir auch einen

    Vector. Diesen kann ich mir dann aus dem Hashtable-Objekt zurückgeben

    lassen.

    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

  18. kann mir jemand sagen, ob es moeglich ist, die JTAPI, also ein Telefon ueber JSP Webapplikationen zu steuern? Ganz ohne Applets usw.

    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

  19. Socket s = null;
    
    1 try {
    
    2   s = new Socket(String Host, int Port)
    
    3   System.out.println(Host + " : " + Port + ": offen");
    
    4   s.close();
    
    5   s = null;
    
    6 }
    
    7 catch (Exception) {
    
    8   System.out.println(Host + " : " + Port + ": offen");
    
    9 } 

    Also die Meldung in Zeile 9 finde ich dann doch etwas seltsam :-)

    Ciao

    Christian

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...