Zum Inhalt springen

nekokaburi

Mitglieder
  • Gesamte Inhalte

    27
  • Benutzer seit

  • Letzter Besuch

Beiträge von nekokaburi

  1. 
    public static void uploadObject(String path, Object o)
    
    	{
    
    		try
    
    		{
    
    		     FTPClient client = new     FTPClient("ftp.XXXX");
    
    			client.login("XXX", "XXX");			
    
    
    			InputStream in = (InputStream) o ;
    
    			client.put(in, path+".jso"); 
    
    		}catch(Exception e)
    
    		{
    
    			e.printStackTrace();
    
    		}
    
    	}
    
    
    
    
    java.lang.ClassCastException: java.lang.Object cannot be cast to java.io.InputStream
    
    	at StudyApplication.ftp2.uploadObject(ftp2.java:43)
    
    	at StudyApplication.ftp2.main(ftp2.java:75)
    
    

    Das Problem stellt die put methode des FTPs da nämlich dass man nur einen InputStream uploaden kann . Ansich kein Problem aber ich krieg meine datei einfach nicht zu einem InputStream ohne sie auf die Festplatte einmal speichern zu müssen . (einen ObjectInputStream würde auch angenommen werden )

    Jedenfalls geht es darum dass man in der Methode ein Object übergibt und diese dann über das ftp package in den angegeben path upgeloaded werden soll

    Ich benutzte com.enterprisedt.net.ftp

    Volrath

    Was ist dein Object denn wirklich? Ein String? ein Bild? Ein Video?

    Casten wird sowieso nicht funktionieren, aber umwandeln evtl...

  2. Danke erstmal für die schnelle Antwort.

    Das was du sagst ist genau das was ich auch selbst weiß, außer

    die JBuilder Einstellung. Dachte nur das du sogenannte offizielle

    Quellen dazu hast.

    Stimme dir aber komplett zu. Bin selbst auch kein Freund des Vectors.

    Hehe ne ich hab das nur auch eingetrichtert bekommen, dass es einfach besseres als Vector gibt =)

    aber dann passt das ja *g*

  3. Hallo

    könntest du darauf einmal etwas genauer eingehen und evtl "offizielle" Quellen nennen.

    Vielen Dank und viele Grüße Jonas

    Offizielle Quellen hab ich momentan nicht bei der Hand.

    Allerdings ist Vector langsamer, kannst du gerne testen, Vector ist langsamer.

    Der Grund warum es Vector noch gibt ist, weil er Synchronized ist (Thread-Safe) wobei ich nicht sicher weiß ob das von Sun garantiert ist...

    JBuilder hat schon seit Java 1.4 Vector als "deprecated" angezeigt (zumindest bei mir in der Arbeit, ka ob das einstellungssache ist!).

  4. Hallo Leute, ich habe ein Problem mit einer JComboBox. Diese bekommt einen Vector, indem die Sachen stehen, die dann auswählbar sein sollen.

    Dies klappt auch wunderbar, mein Problem ist allerdings: Ich möchte nun einen Eintrag selektieren, um diesen dann bearbeiten zu können. Mein Programm holt sich

    aber immer den ersten Eintrag und nicht den Eintrag der auch ausgewählt wurde. Mein Quellcode sieht zur zeit folgender massen aus:

    wg Copyright gelöscht
    
    

    Wenn ich nun das Programm durchdebugge, wird immer nur der erste Filehandler ausgewählt (wenn ich zum Beispiel 5 Filehandler in der ComboBox habe).

    Für Hilfe wäre ich sehr dankbar....

    Viele Grüße

    Steve

    Hallo erstmal,

    Vor allem anderen sei gesagt: Vektor sollte eigentlich nicht mehr verwendet werden (einige Außnahmen gibt es, aber im normalfall nicht)

    Benutze stattdessen falls möglich eine Collection-Klasse (LinkedList, ArrayList, etc.)

    Das außenvorgelassen:

    um das selektierte Objekt einer JComboBox zu erhalten gibt es die methode:

    comboBox.getSelectedItem();

    Falls das nicht das ist, was du machen möchtest, erklär bitte genauer was du willst, weil ich es dann nicht verstanden hab ;)

    Viele Grüße,

    Neko/Phil

  5. *schüttel* GridBagLayout... hässlich, umständlich, mit einem Wort: furchtbar!

    Bevor du dich da weiter drin verläufst:

    --> JGoodies :: Forms

    GridBagLayout ist, wenn man es mal richtig verstanden hat ziemlich easy.

    Und man hat damit seeehr viele möglichkeiten der anordnung und ist trotzdem noch dynamisch.

    Ich finds furchtbar flexibel ;)

    Enums

    1. Singletons sollten final sein.
    2. Bei Lazy Creation sollte man Threadsicherheit beachten (synchronized).
    3. Sollte man abwägen ob eine Eager Creation nicht sinnvoller ist.
    4. Versuche ich zumindest weitestgehend auf Singletons zu verzichten. Gibt fast immer andere Möglichkeiten das zu implementieren.

    Gibt es eine Vorschrift (CodeConventions o.ä.), dass Singletons final sein sollen?

    Threadsicherheit spielt nur eine Rolle wenn man überhaupt mit Threads arbeitet.

    Synchronized sollte mit bedacht gewählt werden, da sich dies erheblich auf die Performance ausübt (Ganz abgesehen von der lesbarkeit des Code ["Warum verwendet er hier synchronized? Wo greifen hier andere Threads zu?])

    Singletons haben durchaus ihre Berechtigung. Sonst hätten sie nicht den weg in die Design-Patterns gefunden. Wie oft man sie einsetzt, muss man wohl von Fall zu Fall abwägen.

    Enums

    Wenn eine Klasse nur einmal existieren soll dann kann man den Konstruktor "private" setzen und sich die Instanz dann über eine statische methode holen.

    z.B.:

    
    public class Single{
    
        private static Single instance;
    
    
        private Single(){
    
    
        }
    
    
        public static Single getInstance(){
    
            if(instance == null){
    
                instance = new Single();
    
            }
    
    
            return instance;
    
        }
    
    }
    
    

    Nur als Ergänzung:

    Das obige nennt man "Singleton" und ist ein Design Pattern.

  6. Erstmals danke für die Antwort.

    Aber ich bin mir nicht sicher ob regex mein Problem löst. Hab mir die Doku ein bisschen angesehen und so wie ich es verstanden hab, muss man schon zirka wissen was der fehlende Teil ist.

    Vielleicht hab ich mich falsch ausgedrück.

    Also ich hab eine Suchmaske, da geb ich text1-1234-text2 ein (das ist eine Bestimmte ID in der Datenbank) und jetzt will ich z.B. nach "Platzhalter"-1234-text2 suchen, das Programm soll jetzt den fehlenden Teil (den ich ja nicht kenne) ersetzen und mir das richtige Ergebnis liefern.

    Ausgegeben wird dann der Name und Nachname von dieser ID.

    Vielleicht ist regex auch das richtige, keine Ahnung, wie schon erwähnt ich hab null Ahnung :hells:

    Für den Fall, dass du keine DB zugrunde liegen hast bzw. es Java-seitig lösen musst/willst, kannst du einfach mit den String methoden:

    startsWith, endsWith und indexOf arbeiten.

    startsWith und endsWith geben dir booleans zurück (sind denke ich selbsterklärend)

    indexOf gibt dir den index zurück an dem die Zeichenfolge gefunden wurde, bzw -1 falls die Zeichenfolge nicht vorkommt (es genügt dir also auf -1 zu prüfen)

  7. Hallo zusammen!

    ich möchte die Grösse von Array verändern, einige Strategien sind mir schon bekannt, und ganau gesagt:

    1) new Array + Elemente kopieren

    2) Vector, ArrayList

    Und meine Frage lautet, welche Strategien es noch gibt?

    was es jemand?

    Danke für Hilfe!

    Gruß,

    Roman

    Statt Vector, ArrayList kann man besser allgemein Collections sagen

    dort gibt es ja auch noch Listen (LinkedList), Maps (TreeMap, HashMap) und bestimmt noch mehr was mir grade nicht einfällt *g*

    Aber prinzipiell sind das die zwei Möglichkeiten, welche sollte es noch geben?

    Entweder macht man immer wieder statische Arrays

    oder dynamische Listen

  8. Bin auch ein totaler Nob und hab grad erst als FIAE angefangen.

    Das mit den Fenstern hab ich soweit gecheckt.

    Nun meine Frage wie kann ich die Java-Kaffetasse aus der linken Seite der Menü-, Titelleiste verbannen und durch ein eigenes Icon ersetzen? Hab auch schon gegoogelt aber mich interessieren die Kaffepreise in Östereich grad überhaupt nicht *sfg*

    :confused:

    Danke schon mal vorab :)

    Edit: Ich benutze Eclipse

    Wonach suchst du denn bei google? ^^

    Versuch mal "java icon JFrame" das dürfte normal gute ergebnisse bringen..

    Gui

    Moin moin,

    hab ne Frage, wenn ich eine einfache paint() Methode in ein JFrame reinbastel, wird das Fenster "durchsichtig" , also ich starte das JavaProgramm und es hat nen Graifkfehler dass auf der GUI halt genau dass angezeigt wird, was hinter dem Fenster angezeigt wurde.

    (Hoffe verständlich)

    Nun hab ich das so gemacht, dass ich ein JPanel gebastelt hab mit der paint() Methode und das Panel auf dem JFrame eingefügt. Funtkioniert zwar, aber frage mich wodurch das oben genannte Problem entsteht.

    Meine nächste Frage: Kann man ein JTextField auf ein JPanel einfügen, habs versucht aber es klappt irgendwie nicht. (Falls es geht: Beispiel?)

    Morgen!

    Dein erstes Problem liegt darin, dass wenn du die paint-Methode überschreibst, du die "normale" paint damit "löscht" (dumm ausgedrückt).

    Damit es funktioniert, musst du am Anfang der Paint-Methode

    super.paint(g) aufrufen, dann dürfte es wieder funktionieren.

    Zum zweiten, ja das geht genauso wie du das JPanel an den JFrame hinzugefügt hast ;)

    deinPanel.add(deinJTextField, evtlHierNochConstraintsJeNachLayout);

    hoffe das hilft dir weiter!

  9. Hi,

    wie wärs denn, wenn Du mit JMS arbeitest? Jeder Client schickt seine Messages zum Server, der entpackt die Message, schaut nach wohin sie gehört und versendet sie weiter. Damit hättest auch das problem der Speicherung erschlagen, denn sobald sich ein Client wieder anmeldet bekommt er sofort die Messages die sich in seiner Queue seit dem letzten Login angesammelt haben.

    Dim

    Hi!

    Kannst du mir das etwas genauer erklären? Wie kann der Server die Nachrichten denn weiterleiten? Geht das durch Firewall's und Router durch?

    Ist dort weniger Overhead?

    Kann ich auch Objekte verschicken oder nur Text?

    (Objekte machen es halt einfacher, weil ich ein Message-Objekt habe, welches neben den Text, noch den Empfänger, Sender sowei einen Datumsstempel enthält, wobei das nicht das Probleme wäre ;))

    Ist JMS standardmäßig bei Java dabei?

    Welche Klassen sind dort wichtig, bzw wo gibt es eine gute Anleitung?

    Aber schonmal Danke für den Tipp überhaupt ;) werde mir das am Wochenende mal zu gemüte führen *g*

  10. Mhm, schade!

    Dachte mir auch schon, das es an RMI liegen wird.

    Da kommt schon eine Menge Overhead zusammen...

    -Serialisierung der Daten (also müssen auch alle Superklassen mit gecheckt werden ob da Daten vorhanden sind)

    -Objekte statt primitive Datentypen

    -Ich glaube es ist sogar verschlüsselt?

    Gibt es irgendeine Alternative zu direkten TCP-Sockets?

    Also etwas das man ähnlich wie RMI verwenden kann (ohne die Automatische Serialisierung natürlich ;)) --> Objekte übertragen zu können ist halt schon eine super Sache...

  11. Das dachte ich auch, dass es mit Routern/Firewalls problematisch werden würde.

    Deshalb eben meine Lösung, per Threads in definierten Intervallen am Server anzufragen "was es neues gibt"

    Jemand eine Ahnung/Idee wie das z.B. bei ICQ gelöst wurde?

    (bevor jemand frägt, das Programm schreibe ich nur für mich als "training", wird maximal im Freundeskreis eingesetzt, also sollte es kein problem sein, von ICQ/MSN/Yahoo abzukupfern)

  12. Hallo,

    Erstmal danke für die schnelle Antwort ;)

    Ja Polling (das Wort ist mir vorhin net eingefallen *g*).

    Wie kann ich denn über RMI etwas an den Client schicken?

    Die IP des Clients kann ich natürlich am Server rausfinden, aber dann...?

    Mit TCP-Sockets wollte ich eig. nicht arbeiten, weil RMI im vergleich so schön einfach funktioniert *gg*

    Geht es irgendwie per RMI von Server zu Client etwas zu übertragen, ohne das der Methodenaufruf vom Client ausgehen muss?

    Bisher dachte ich es muss so sein:

    Client -->(Anfrage) --> Server (wurschtelt rum und returned antwort) --> Client bekommt den Rückgabewert der Methode

    ?

  13. Hallo Community!

    Folgende Ausgangslage:

    Ich habe einen Chat, dieser funktioniert grob so wie MSN, ICQ, etc.

    Also keinen Chatraum wo alle drinnen sind, sondern man chattet immer zu zweit und muss dafür die ID/Benutzernamen des anderen wissen.

    Das Ganze funktioniert eigentlich auch schon ganz ordentlich. ;)

    (Manche Features die ich gerne hätte, wie z.B. Nachrichten an Personen verschicken die offline sind, fehlen halt noch *g*)

    Aber ich habe da leider einige Schwierigkeiten mit der Performance des Servers.

    Dieser läuft auf meinen Rechner, die Aufrufe der Clients erfolgen per Threads.

    D.h. der Thread des Clients fragt jede Sekunde nach, ob eine neue Nachricht für ihn vorliegt. Dies geschieht über RMI.

    Wenn ich jetzt >500 Clients connecten lasse (2 davon "chatten" jeweils miteinander) (automatisierter Test) dann geht der Server in die Knie (100% CPU Auslastung).

    Ich weiß, niemals nicht werden soviele Leute verbinden, aber ich würd gern wissen woran sowas liegen kann. ICQ ist ja auch mit Java progammiert worden, oder? Haben die dort so gewaltige Server, dass die diese Flut bewältigen können?!

    Ich selbst vermute das Problem ja größtenteils bei RMI, beim Marshelling/Unmarshelling, Serializieren, etc. geht bestimmt einiges an Zeit drauf, bin mir aber nicht sicher, kann dort das Problem liegen? Kann man etwas dagegen unternehmen?

    Oder hab ich nur absolut unperformant programmiert? (obwohl ich besonders darauf geachtet habe!)

    Sonstige Vorschläge? ;)

    Vielen Dank, allein schon für's lesen *G*

    Grüße,

    Neko

    Bei Bedarf kann ich gerne auch Source-Code posten

  14. Es sind nicht Integer, die am Ende rauskommen. Es war nur als Beispiel angegeben. In Wirklichkeit ist es ein firmeninternes Format um ein Dialogmenü auf der Konsole anzuzeigen(was ich benutzen muss). Es steht nichts weiter dahinter, weil die Werte der Klasse auch nur Strings sind also kompatibel wird's auf jeden Fall.

    Das versteh ich nicht "weil die Werte der Klasse auch nur Strings sind"

    was meinst du damit? Nur weil eine Klasse 3 Strings beinhaltet kann man trotzdem nicht so ohne weiteres hin und herwandeln...

    Am Einfachsten wäre es, du speicherst die Werte nicht als String in die ArrayList sondern direkt als "AndererTyp", dann kannst du es per arrayList.ToString(new AndererTyp[0]) umwandeln!

    Wenn das nicht geht könnte man sich wohl etwas basteln was von der Funktionsweise grob wie Collection.addAll() funktioniert? (KA müsste man mehr Infos haben was genau AndererTyp ist)

  15. Mhm deine Lösung ist natürlich nicht wirklich ideal.

    Wie du selbst gesagt hast, sortieren ist nicht möglich!

    Außerdem ist es so für jemand anderen schwer zu verstehen, was das eigentlich soll... und eine for-schleife mit i=i+2 sollte zumindest kommentiert werden, sowas überliest man sonst leicht ;)

    Allgemein solltest du dir einen besseren Namen als "meinVektor" ausdenken, nenn es doch "artikelnummernVektor" oder besser noch (da nach CodeConventions) du benutzt englische Namen.

    Achja, solltest du ein eigenes Objekt erstellen wie oben gefordert, vergiss nicht, dass diese Klasse Comparable implementieren muss (compareTo-Methode), damit du deinen Vektor sortieren kannst.

    Wobei ich immernoch nicht verstehe, warum du dort nicht HashMap, oder zumindest LinkedList/ArrayList hernimmst?

    Grüße,

    Neko

  16. Hallo,

    Falls es zu jeder Artikelnummer nur einen Wert gibt und die Artikelnummer eindeutig ist, könnte man statt eines Vektors ganz einfach eine Map nehmen, diese speichert alles als Key-Value-Paare, du kannst also beide Werte speichern!

    Nimmst du eine TreeMap sortiert dir die Liste die Werte sogar von ganz alleine ;)

    Wegen dem Dateieinlesen... wo ist da das Problem?

    du hast den String "j" für weitermachen, wieso prüfst du nicht if(inputString.equals("j")?

    Grüße,

    Neko

  17. Ich glaube mit Vererbung wirst du hier nicht all zu sehr weit kommen, da deine Klasse ja dann von 2 Klassen erben müsste und das nicht möglich ist.

    Allerdings könntest du den offenliegenden Quellcode von JPasswordField in deinem TextField ergänzen.

    Oder anders: Dein TextField machst du aus einem Panel und addest darauf sowohl ein TextField als auch ein PasswordField. Dann implementierst du die getText() und setText() methoden für das Panel noch um ihm die Funktionalität zu geben (und vlt. noch andere Methoden die normale TextFields und PasswordFields haben).

    Und dann brauchst du noch eine Methode mit der du festlegen kannst welches der beiden Teile angezeigt werden soll.

    Wieso müsste man von 2 Klassen erben? Ich meinte ja suchen nach einer anderen Klasse von der man erben könnte. Also Erbe von Klasse B statt von Klasse A, nicht zusätzlich. War wohl etwas dumm formuliert ^^

    Mit dem Rest hast du aber Recht ;)

  18. GA2 ist schon ein wenig glückssache...

    Der FIAE freut sich wenn viel Programmierung drankommt

    Der FISI freut sich wenn viel Netzwerk drankommt

    der ITKM freut sich wenn viel Wirtschaftliches drankommt

    ...

    Was in den jeweiligen Bereichen geprüft wird ist aber bis zu einem gewissen Punkt vorhersagbar:

    Programmierung: SQL, ER-Modell, Programmiersprache, UML o.ä.

    Kaufmännisches: Geschäftsbrief, Angebote vergleichen, Rechnungen, etc.

    Netzwerk: Verkabelung, PC/Server-Komponenten, und ein oder mehrere "aktuelle" Themen was gerade in Mode ist (VPN, VLAN, IPv6, etc.)

    Ich empfand die Sommerprüfung 2008 an der ich teilnahm sehr leicht,.

    Auf den Stoff der GA2 wurde ich von meinen ITS-Lehrer gut vorbeireitet (alle Themen hatten wir in den letzten 1,5jahren durchgenommen)

    GA1 für FIAE fand ich sowieso einen Witz, wer da nicht ein gutes Ergebnis erzielt hat (also Sommerprüfung 08), kann zumindest nicht programmieren (es gehört ja noch mehr zu einem guten FIAE ;))

    Ja und WISO ist sowieso immer das gleiche (auch wenn ich dafür vll mal lernen hätte sollen xD)

  19. Hallo,

    Hier stellt sich mir die Frage welche Funktionalität das JdbTextField bereitstellt?

    Gibt es auch ein JdbPasswordField?

    Wenn nicht:

    Spricht etwas dagegen direkt JPasswordField einzusetzen?

    Falls ja:

    Such ob es nicht eine geeignetere Klasse gibt von der du erben kannst.

    Falls es keine gibt:

    Sieh dir die Klasse JPasswordField an und pass das verhalten deines Textfeldes an

    -->dies ist schlecht, da du die Neuerungen in zukünftigen JPasswordField-Versionen nicht mitbekommst!

    Hoffe das hilft dir weiter,

    Grüßle

    Neko

  20. Tagchen!

    Puh ein ziemlich schwieriges Thema. Aber erstmal Glückwunsch, dass du es so gut beschrieben und erklärt hast ;).

    Zum Anzeigen von HTML eignet sich eine JEditorPane schon!

    Bearbeiten nur seeeehr eingeschränkt.

    Außerdem gibt es ein paar Einschränkungen (CSS, XHTML kompatibles HTML funktionierte bei mir nicht immer)...

    Aber für alle "normalen" Sachen (Tabellen, etc.) eignet es sich.

    Das Drucken könntest du über einen Printjob lösen. Hier kann man Swing Komponenten direkt drucken (korrigiert mich, falls das nicht möglich ist ;)). Du könntest also einfach die komplette JEditorPane drucken.

    Schönen Tag noch,

    Neko

  21. Wenn ich in der Arbeit ein Problem habe, frage ich erstmal die netten Kollegen.

    Die haben oft schon ein ähnliches Problem gehabt oder wissen anderen Rat.

    Der nächste Schritt ist das systematische Suchen in der API, das geht ja auch recht Flott, suche ich z.B. etwas das mit Mathematischen Formeln zu tun hat, suche ich erstmal in der Math-Klasse...

    Hat das keinen Erfolg wird munter gegoogelt...

    Java ist wie ich finde sehr gut dokumentiert und v.a. sehr logisch und systematisch aufgebaut ;)

    btw. "Java ist auch eine Insel" ist gut zum rausfinden was womit zu tun hat ^^

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