Zum Inhalt springen

speedi

Mitglieder
  • Gesamte Inhalte

    813
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von speedi

  1. speedi

    JDBC Zugriffszeiten

    Richtig. Wird sonst lustig, wenn jede Datenbank-Abfrage einen eigenen Socket erfordert. Der Socket ist auch nicht zwangsläufig sofort nach dem schließen der Verbindung wieder weg (ich weiß nicht wie das bei den jeweiligen Connectoren gemacht ist, aber generell muss man sich da bei einem TCP-Socket selbst drum kümmern, wenn man will das er danach gleich weg ist - vielleicht arbeiten viele Connectoren so, aber drauf wetten würd ich eben nicht). Ressourcen-Verschwenung ist es auch.
  2. Als Startwert deiner variablen könntest du einfach einen negativen Wert nehmen und die Dateneingabe in eine while-Schleife packen. Solang der Variablen-Wert negativ ist wiederholst du das Prozedere. Exceptions werden geworfen wenn Fehler auftreten. Eine IOException tritt auf, wenn beim lesen eines Streams irgendwas schief geht. Beim lesen von der Konsole kenn ich jetzt keinen Fall wo sowas passiert, von daher nicht so schlimm wenn du da einfach nur die Error-Message ausgiebst im catch-Teil (ich würde aber besser e.printStackTrace() verwenden, dann bekommst du nämlich genaue Infos welche methoden-Aufrufe dazu geführt haben. Wenn beim parsen eines Strings zu einem einfachen Datentyp (short, int, boolean, double, long, float) etwas schief geht wird eine NumberFormatException geworfen. Wenn du diese Abfängst kannst du angemessen drauf reagieren. Wenn du sie nicht abfängst würgst du damit den Prozess ab: dein Programm knackt weg. try{ Integer.parseInt(...) }catch(IOException e){ System.out.println("Dussl du! gib eine Zahl ein! Außerdem hab ich hier Integer verwendet" +" und das kann keine Kommas! Außerdem müsste man bei Double . anstatt , verwenden, weil sich " +"Programmiersprachen leider an der englischen Schreibweise orientieren! Das könnte man allerdings " +"umgehen indem man vor dem parsen des Strings alle kommas im String durch einen Punkt ersetzt. Die " +"replace-Methode der Klasse String hilft hier weiter."); }
  3. speedi

    Java und Aero

    Danke. Du kennst also jetzt spontan keine Libs, die das mit AWT/Swing ermöglichen? Naja... werds schon irgendwie schaffen, notfalls selbst was über JNI machen. Danke jedenfalls für den Tip mit SWT. Da kann ich da mal schauen, wie die das regeln.
  4. speedi

    Java und Aero

    Hi Leute, vielleicht ist dem ein oder anderen schon aufgefallen, dass bei Windows7 recht häufig der Fortschritt eines Ladebalkens im Icon der Taskleiste angezeigt indem sich dieses proportional zum balken von links nach rechts grün füllt. Weiß jemand wie man diesen Effekt auch bei Java-Anwendungen nutzen kann? gruß Daniel
  5. Aus deinem Post geht leider nicht hervor, was du genau willst. Generell gibts zwei bzw drei Möglichkeiten: 1. Einbauen des jetzigen Codes in eine HTML_Seite als Applet (Strinknormaler Java-Code, dein Hauptfenster erbst dann halt nicht mehr von JFrame oder Frame sondern von Applet). Nachteil: Der Client muss eine Java-Runtime mit entsprechendem Browser-Plugin installiert haben. 2. Java Webstart (Alles bleibt wie es ist und beim Click auf einen Link wird das Programm mit standardisierten Java-Webstart-Technologien, auf dden Client übertragen und ausgeführt) Nachteil: Der Client muss eine Java-Runtime installiert haben und das Programm läuft am Ende nicht im Browser sondern als eigenes Fenster. 3. Du ersetzt die GUI durch ein HTML-Pendant und arbeitest mit einem Dynamischen-Webserver (z.B. Java-Servlets). Hierbei ist jedoch ein gewisser Implementierungsaufwand zu erwarten und einige Sachen sind damit nicht oder nur schwer möglich (z.B. Animationen die du bereits in deiner JAVA-GUI implementiert hast). Nachteil: Aufwand und zum Teil eingeschränkte Möglichkeiten und ein entsprechender Webserver muss natürlich auch vorhanden sein. Vorteil: Der Client benötigt kein JAVA, da er die JAVA-Code geschcikt bekommt, sondern lediglich HTML-Code, welcher mittels JAVA-Technologien auf dem Server dynamisch erzeugt wird.
  6. In den Ordnern die SVN Anlegt erstellt es automatisch einen unsichtbaren Ordner namens ".SVN". Darin befindet sich eine Datei namens "Entries". Das Datenformat schaut nicht super schwer aus - müsste eigentlich zu machen sein. Die Revision findest du darin jedenfalls auch.
  7. Ich habe mir sowas schonmal gebaut - allerdings innerhalb eines Servlets. Wobei das mit Applets eigentlich genau das gleiche in grün sein sollte. Bei JSP: Speicher die SessionID, die IP und den Usernamen des Clients in einer DatenbanktTabelle mit der Zeit des einloggens. Wenn der User dann abfragen stellt musst nur in der Datenbank schauen, ob der Eintrag für diese Verbindung existiert und wie der Username dazu ist. Die IP habe ich nur gespeichert um zu verhindern, dass ein anderer die SessionID fäschen kann - bei der IP dürfte das nämlich schon etwas schwerer werden (aber auch nicht unmöglich). Bei Applets: Da kannst du eigentlich genau so vorgehen, nur dass du dir die Session-ID selbst erzeugen musst. Am besten erzeugst du die Serverseitig um sicher zu gehen dass nicht zufällig ein anderer User die gleiche ID hat und schickst sie dann dem Client(z.B. byte[16] mit Random-Werten - dann prüfst du, ob das mit einem anderen eingeloggten user übereinstimmt und we ja erzeugst eine neue id). Ich hatte damals noch einen Thread am laufen, der einmal in der Minute der Login-Tabelle gesagt hat, dass sie alle einträge rausschmeißen soll die älter als 15 minuten sind (Auto-Logoff). Die Login-Infos kannst du anstelle einer Datenbank-Tabelle auch genauso gut in einer lokalen Objekt-Liste halten ich hab das damals nur so gelöst um sicher zu stellen, dass mehrere JSP-Server parallel arbeiten können. _________________________________ Die Idee als Authentifizierung das Socket-Objekt zu verwenden ist gar nicht übel. Ich würde aber zusätzlich trotzdem noch eine klassische SessionID (eine zufällige, einmale Abfolge von z.B. 128-Bit verwenden) - kommt halt bissl drauf an wie gut du den Laden abdichten willst/musst. Referenzen auf gleichheit prüfen geht nämlich schwupp-die-wupp wenn du aber bei zwei Arrays auf ihren Inhalt vergleichen musst ist das langsamer.
  8. Ich hab mit Acronis True Image schon häufiger Platten geklont (inkl MBR). Das hat eigentlich bislang immer super funktioniert (auch bei SATA-Platten). Wenn du das Programm nur einmal zum privaten Gebrauch benötigst gibts auch eine 30-Tage-Testversion zum download. Du scheinst da jedenfalls echt ne etwas betagte Version zu haben.
  9. speedi

    .txt überschreiben

    ?? Respekt. Bei dieser Fragestellung wärs mir jetzt nicht möglich gesewen solche Probleme zu erkennen. Wo liegt denn genau das Problem? Willst du die Ganze Datei neu schreiben und dabei alle enthaltenen Daten ersetzen? Willst du nur einen bestimmten Teil finden und ändern? Wie groß ist die Datei üblicherweise?(bei mehreren MB würde ich das etwas anders lösen als wenns nur ein paar KB-Config-File ist) Wie schaut das Dateiformat aus?
  10. Was den Treiber und das Windows Update angeht: MS hatte vor 2 Jahren oder so mal ein Windows Update welches die alten Realtek-Treiber irgendwie gekillt hat. Sound hat man zwar immer noch gehabt aber glaub nur Stereo und die Konfigurationssoftware ging nicht mehr. Kurz darauf gabs von MS wieder ein Update welches das Problem gelöst hat. Klar das Realtek dieses Update mittlerweile gleich zum Treiber mit dazu packt. Aber ich glaub kaum, dass das beschriebene Problem damit zu lösen ist. Übers automatische Update wurde das Update schon vor zwei Jahren an die betroffenen Rechner verteilt und der Effekt das gar nichts mehr geht auch unter Linux ist damit nicht erklärt. Ahnung hab ich aber auch keine.
  11. Klar. Die von mir gennanten Varianten funktionieren nur bei Funktionsgraphen (jede X-Coordinate wird nur einmal vom Graphen "befahren"). DrawPolygon macht wirklich nicht immer das was man will... Da gibts schnell mal "komische Effekte". Kann man aber für Graphen mit raltiv wenigen zu verbindenden Punkten durchaus machen. Die Methode mit drawLine nach unten hat bei mir bislang immer gefunzt. Zuletzt hab ich die bei einem Höhendiagramm verwendet mit zig 1000 Punkten von denen natürlich nur ein bruchteil gezeichnet werden konnte. War schon flott genug. Wenn man weniger Punkte hat oder die Punkte mehrere X-Pixel auseinander liegen muss man sich die punkte dazwischen halt interpolieren, das ist aber auch recht einfache Mathematik. Ich hab bislang meist mit linearen Projektionen gearbeitet und mit der drawLine-Methode. War eigentlich recht simpel und hat mich auch bei dem Höhendiagramm nicht im Stich gelassen.
  12. Schau dir mal Java-Ist auch eine Insel von Galileo Computing an. Das Bucht ist kostenlos im Internet zu finden. -Bubblesort Zum Thema Bubblesort solltest du dich erstmal allgemein über den Alogithmus informieren. Wenn du es dann noch schaffst das ganze als PAP oder Struktogramm auf Papier zu bringen ist es eigentlich ein klacks, das dann in Java zu codieren - vorausgesetzt du besitzt das nötige Grundwissen was Schleifen und Arrays angeht. -OOP -Klassen, Datenkapselung -Vererbung Das oben genannte Buch anschauen! Aber am besten bevor du damit anfängst dich am Bubble-Sort zu versuchen. Das du nach diesen Dingen fragst lässt mich stark vermuten, dass du bislang noch überhaupt keine Erfahrung mit (objektorientierter) Programmierung hast. Diese solltest du dir erstmal aneignen. Der Bubble-Sort Alogithmus wäre obendrei eine nette Übungsaufgabe. Toll wärs wenn du ihn erstmal mittels Arrays löst und dann auf selbst implementierte verkettete Listen umbaust (zum Thema Klassen, Referenzen, Objektorientierung).
  13. Da fallen mir mehrere Sachen ein. Entweder zu zeichnest bei jeden Pixel, den du auf der x-Achse nach vorn gehst eine Linie nach unten oder du arbeitest mit ((Graphics)g).drawPolygon(...). Da kannst dann den Startpunkt des Diagrammsegments, den Endpunkt und dann natürlich die Drunterliegenden Punkte auf der x-Achse angeben. So hab ich solche Dinge bis jetzt meistens gemacht.
  14. Die Fernbedienung funktioniert doch über Infrarot? Vielleicht kannst du die Sichtverbindung zwischen Sender und Empüfänger noch verbessern, bzw. nach anderen Richtungen abschirmen?
  15. Ich denke da auch grad an den Fachinformatiker/Anwendungsentwicklung. Da ich das selbst aus so ziemlichen gleichen Gründen gelernt hate die du grade geschildert hast kann ich dir folgendes sagen: Der kaufmännische Anteil steht heute bei vielen Berufen mit im Lehrplan. Aber ich denk der Anwendungsentwickler ist von den großen IT-Ausbildungsberufen da am weitesten weg (außer du musst Buchhaltungssoftware schreiben ). Ob du allerdings in der Ausbildung ordentlich programmieren lernst ist sehr abhängig von der Firma die dich ausbildet. Die Berufsschule ist dafür nach meiner Erfahrung kein großer Beitrag und viele Firmen fördern den Nachwuchs unzureichend (beim Windows installieren, kabel ziehen und anderen weniger anspruchsvollen Tstigkeiten lernt man halt nicht programmieren). Deshalb halte ich es für wichtig darauf bei der Ausbildungsplatzsuche besonders zu achten. Im Münchner Raum gibt es sehr viele Firmen die Fachinformatiker ausbilden und einige kümmern sich auch recht gut um den Nachwuchs - ist aber zum pendeln wahrscheinlich zu weit weg von Passau.
  16. speedi

    Buttons in Java

    So wie ich es geschrieben habe würde es funktionieren. Du legst ja nicht die GUI schlafen sondern erstellst einen neuen Thread der zuersteinmal die Buttons abschaltet dann schläft(nur dieser eine Thread schläft! - alle anderen natürlich nicht) und dann die Buttons wieder anschaltet. Wenn du auf einen deaktivierten Button klickst werden seine ActionListener natürlich nicht gerufen, aber der klick wird natürlich verarbeitet, da die GUI eben nicht schläft. Wenn der Grund wieso teile der GUI disabled sind nicht ersichtlich ist wäre das sicher eine sinnvolle Sache. Allerdings darf man dann die Buttons nicht mit setEnabled(boolean bearbeiten, da nütlich ausgeschaltete Buttons ihre ActionListener nicht mehr rufen - d.h. man müsste sich was einfallen lassen, damit der User nicht erst beim clicken merkt, dass sein vorhaben nicht möglich ist (z.B. manuelles setzen der Farbe).
  17. speedi

    Restwert Gaming-PC

    Wenn du jemand findest der dir für das System noch 150-200 € gibt kannst eigentlich sehr glücklich sein (zumal das Gerät in Punkto Energieeffizienz einem neuem System mit ähnlicher Leistung meilenweit unterlegen sein dürfte). Wenn du die Schrammen am Gehäuse ausbesserst kannst das vielleicht einzeln nochmal zu Geld machen und damit unterm Strich eventuell sogar mehr raus schlagen. Eine gute Platform zum PC verkaufen ist immer auch Ebay. Da scheint der Spruch "Jeden Tag geht ein Depp durchs Isartor" wirklich zu stimmen, wenn ich mir anschaue, was da manche bereitwillig für gebrauchte PCs von vor 4 Jahren hinblättern nur weil Schlagworte wie "Gaming-PC", "Multimedia" oder "High-End-Grafikkarte" drinnen stehen.
  18. speedi

    Buttons in Java

    new Thread(){ public void run(){ DeineHauptKlasse.this.ButtonStandard.setEnabled(false); DeineHauptKlasse.this.ButtonFine.setEnabled(false); DeineHauptKlasse.this.ButtonSwitchOutput.setEnabled(false); DeineHauptKlasse.this.ButtonMinMax.setEnabled(false); DeineHauptKlasse.this.ButtonGetConfigFile.setEnabled(false); DeineHauptKlasse.this.ButtonGetFiles.setEnabled(false); DeineHauptKlasse.this.ButtonDeleteMeassurement.setEnabled(false); DeineHauptKlasse.this.ButtonFirmware.setEnabled(false); DeineHauptKlasse.this.ButtonGetFtpFile.setEnabled(false); DeineHauptKlasse.this.ButtonSetFtpFile.setEnabled(false); DeineHauptKlasse.this.ButtonStandard.paintImmediately(0, 0, 500, 600); DeineHauptKlasse.this.ButtonFine.paintImmediately(0, 0, 500, 600); DeineHauptKlasse.this.ButtonSwitchOutput.paintImmediately(0, 0, 500, 600); DeineHauptKlasse.this.ButtonMinMax.paintImmediately(0, 0, 500, 600); DeineHauptKlasse.this.ButtonGetConfigFile.paintImmediately(0, 0, 500, 600); DeineHauptKlasse.this.ButtonGetFiles.paintImmediately(0, 0, 500, 600); DeineHauptKlasse.this.ButtonDeleteMeassurement.paintImmediately(0, 0, 500, 600); DeineHauptKlasse.this.ButtonFirmware.paintImmediately(0, 0, 500, 600); DeineHauptKlasse.this.ButtonGetFtpFile.paintImmediately(0, 0, 500, 600); DeineHauptKlasse.this.ButtonGetFtpFile.paintImmediately(0, 0, 500, 600); try { Thread.sleep(10000); } catch (InterruptedException e) { System.out.println("geht nicht"); } DeineHauptKlasse.this.ButtonStandard.setEnabled(true); DeineHauptKlasse.this.ButtonFine.setEnabled(true); DeineHauptKlasse.this.ButtonSwitchOutput.setEnabled(true); DeineHauptKlasse.this.ButtonMinMax.setEnabled(true); DeineHauptKlasse.this.ButtonGetConfigFile.setEnabled(true); DeineHauptKlasse.this.ButtonGetFiles.setEnabled(true); DeineHauptKlasse.this.ButtonDeleteMeassurement.setEnabled(true); DeineHauptKlasse.this.ButtonFirmware.setEnabled(true); DeineHauptKlasse.this.ButtonGetFtpFile.setEnabled(true); DeineHauptKlasse.this.ButtonSetFtpFile.setEnabled(true); } } }.start(); Wenn du Thread.sleep einfach so direkt im ActionListener rufst legst du den gesamten GUI-Thread schlafen. Das musst du einfach nur parallelisieren, dann hauts hin. Ob du das direkt über einen Thread oder über einen Timer machst ist am Ende Jacke wie Hose. Übrigens: Klassen-Variablen werden klein geschrieben. Neue Wörter in der Variable beginnen mit einem großbuchstaben (z.B. "buttonForClosingTheApplication").
  19. Hat sich erledigt. Die moveToBack(Component c)- und moveToBack(Component c)-Methoden des JDesktopPanes hatten offenbar ihr freude daran mir meine paint-Reihenfolge zu versauen indem sie die JDesktopIcons hinter die Map schieben.
  20. So langsam werd ich echt blöd hier. Ich wollte einem JDesktopPane als Hintergrund eine bedienbare Karte(eine komplette Komponente mit MouseListenern etc...) geben. Damit die JDesktopPanes über dieser liegen habe ich dann einfach die add(Component comp) überschrieben, so dass die Componente dort immer an oberster Stelle eingefügt wird (es sei denn es handelt sich um die Karte - die ist immer an niedrigster Stelle). Soweit funktioniert das auch ganz gut, allerdings in dem Moment wo ich ein JInternalFrame minimiere wird das entsprechende JDesktopIcon erstmal nicht angezeigt, solang bis ich an die Stelle klicke wo es sein sollte (dann tauchts auf). Hab auch schon versucht das teil repainten zu lassen - negativ. Wie würdet ihr das angehen, wenn ihr eine Komponente als Hintergrund eines JDesktopPanes setzen wollt? Source-Code: desktop = new JDesktopPane(){ @Override public Component add(Component comp) { if(comp == viewer){ return super.add(comp,getComponentCount()); }else{ return super.add(comp,0); } } }; viewer = new GeoViewPanel(); desktop.add(viewer,desktop.getComponentCount());
  21. speedi

    Joptionpane

    Sorry... ich hab die falsche Methode gepostet. Nimm mal: JOptionPane.showConfirmDialog(frame,"Frage?","Eine Frage", JOptionPane.YES_NO_OPTION); Dieser Weg ist der übliche für kleine Standard-Dialoge, deshalb bietet Java-Swing hier auch zig Möglichkeiten vordefinierte Dialoge in einer Zeile zu erstellen und Rückgabewerte genauso einfach zu bekommen.
  22. speedi

    Broadcast blockieren

    Toll... und was nützt mir das dann für meinen konkreten Problemfall? Wie ich oben schon geschrieben habe, wird die Lösung jetzt ein 3Com-Switch werden der entsprechende Funktionen zum Limitieren/Blockieren des Broadcast/Multicast-Traffics drinnen hat. Ich denk die Lösung ist halbwegs kostengünstig und vor allem gibts bei umbauten am Netz keinerlei zusätzlichen Aufwand wenn das Teil einmal konfiguriert ist.
  23. speedi

    Joptionpane

    probiers mal mit: int i = JOptionPane.showMessageDialog(null,message,"Frage",JOptionPane.OK_CANCEL_OPTION); Sicherlich gibts bei deiner Variante auch ne möglichkeit den Rückgabewert abzufragen, lies doch einfach mal in der Java-API-Documentation nach.
  24. speedi

    Broadcast blockieren

    Also die Variante mit dem Router fällt weg. Die Kommunikation von Testnetz ins Frmennetz wäre zwar so möglich aber anders rum schauts nicht so toll aus (vom Firmennetz ins Testnetz). natürlich lässt sich das alles Konfigurieren, aber da wir unser testnetz häufiger mal verlegen und damit auch wieder sämtliche Netzwerkkonfigurationen umbauen ist das viel zusätziche Arbeit. Ein Fass ohne Boden. Was wäre z.B. wenn ich vom Hausnetz Remote an die Rechner im testnetz will? Das geht dann nichtmal wirklich mit Portforwarding, weil ich natürlich jeden Port nur an einen Rechner weiterleiten kann. Der Tipp mit dem Cisco Routerwar gar nicht so abwegig. Ich hab nochmal fleißig Handbücher von besseren Switches geladen und geselen. Hab jetzt einen entdeckt, der so ne Art Multicast/Broadcast Limiter drinnen hat (in %, Bits/s oder Packets/s). Ich denk der wirds jetzt werden. Dann kann ich auch mal wenns not tut ein klein wenig ins Firmennetz Broadcasten, um was zu testen - Hauptsache ich blas nicht wieder 100 MBit da rein. Was den PC mit zwei Netzwerkkarten angeht: Das hatte ich mal mit Windows XP versucht => Das Firmennetz hat uns automatisch vom Netz genommen weils irgendwie nen Ring gab - unser Netz war aber definitv nur mit über den PC mit zwei NICs mit dem Hausnetz verbunden.
  25. setPrefferedSize(...) setMinimumSize(...) setMaximumSize(...) Mit diesen Methoden kannst du deiner GUI-Componente größen übergeben die der layout-Manager (in deinem Fall BorderLayout) abfragt und nach Möglichkeit beachtet. Eine andere mehr oder weniger schöne möglichkeit für dynamische GUIs ist null-Layout in Combination mit einem ComponentListener auf dem Container oder einer überschriebenen setBounds()-Methode des Containers, wo du dann die größenberechnungen selbst durchführen kannst.

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