Clientprogramm, Transparenz, Systemtray, OS-unabhaengig
Sympatisant
- programmiertechnik
Salvete,
ich habe fuer meinen Frendeskreis ein Forum. Dieses habe ich um ein kleines Java-Programm erweitert, welches man sich auf dem Client installiert und welches in regelmaessigen Intervallen ueberprueft, ob neuen Nachrichten existieren. Ggfs. erscheint im Systemtray ein Icon, so dass der User weiss, dass neue Nachrichten fuer ihn existieren. Die Daten werden ueber WebServices (PHP<=>Java) ausgelesen.
Nun moechte ich das Programm ein wenig erweitern und dabei bin ich auf einige Probleme gestossen. Mein Ziel ist es, bei neuen Nachrichten ueber dem Systemtray eine Art Popup erscheinen zu lassen, in dem der Text der Nachricht angezeigt wird. Dieses moechte ich nach dem Erscheinen langsam ausfaden lassen. Sprich, es soll immer transparenter werden, bis es schliesslich komplett verschwindet. Einige kennen diese Verhalten vielleicht bereits von Microsoft Outlook.
Mein Problem ist, dass Transparenz unter Java nur unzureichend unterstuetzt wird. Es gibt einige Bibliotheken (Thema JDIC, SWINGX), mit denen man Panels transparent machen kann, jedoch nicht das top-level Window.
In eingigen Foren wurde berichtet, dass ein Workaround existiert - jedoch wird dieser Workaround seinem Namen alles andere als gerecht: Man soll beim Verschieben des JFrames ein Screenshot dessen machen, was "hinter" dem Programm liegt - also den Desktop quasi - und das dann als Hintergrundbild des Frames setzen. Neben ungeheurer Ressourcen- und CPU-Last ist das m.M.n. eine recht sinnfreie Loesung.
Ich waehlte Java, da es auch unter Linux laufen soll.
Jetzt habe ich mir mal Jambi naeher angeschaut. Dass ist sozusagen eine Bruekce zwischen QT und Java (von Trolltech).
http://dist.trolltech.com/developer/download/webstart/
Das gefaellt mir sehr gut, es exsitiert sogar ein Eclipse-Plugin + GUI-Builder, jedoch ist das ganze nicht kostenlos und 1500$ sind mir einfach zu viel dafuer ;)
Lange Rede kurzer Sinn: Jetzt fehlt es mir an einer Technik, mit der ich mein Vorliegen verwirklichen kann. Daher meine frage hier im Forum, um ein paar Eindruecke eurerseits zu bekommen und um evtl. von anderen Techniken zu erfahren, die mir bisher vllt. noch nicht bekannt sind.
Mein Anspruche sind ja eigentlich nicht gerade hoch. Was ich brauche ist:
Kann mir einer hierfur etwas gutes empfehlen?
Oder vielleicht exisitert ja auch eine Alternative zu dem kostspieligen Trolltech-Jambi.
Ich bin fuer alles offen!
Danke feur's Lesen!
MfG,
Sympatisant
Salvete,
habe ich vielleicht etwas wichtiges an Information vergessen oder mich
evtl. unverstaendlich ausgedrueckt?
Oder liegt es daran, dass hier vielleicht nur wenige mit der Materie
zu tun haben?
Bitte nicht falsch verstehen, es wuerde mich nur mal interessieren woran
es liegt, dass ich keine Antworten erhalte ;)
MfG,
Sympatisant
Bitte nicht falsch verstehen, es wuerde mich nur mal interessieren woran
es liegt, dass ich keine Antworten erhalte ;)
Ich habe eine Antwort geschrieben, aber sie gehörte zu den zwe von drei Fällen wo ich nicht sende.
Meine Antwort hatte ca. so gelautet:
Mach keinen Blödsinn damit, den User mit Information unnötig zu belästigen, wenn er nicht einmal eine ernste Chance hat, die Information wahrzunehmen, oder auf die Anzeige einen Einfluss auszuüben.
Da ich das etwas harsch fand, habe ich nicht gesendet.
Auf meinem Systemtray habe ich gleich mehrere sich überlagernde Kandidaten von Störmeldungen. Alle programmiert von weitsichtigeren Unternehmen.
Das Problem ist halt: Dein Programm ist immer nur Gast auf einem fremden PC, und sollte sich dementsprechend benehmen.
mfg Beat
Dein Programm ist immer nur Gast auf einem fremden PC, und sollte sich dementsprechend benehmen.
dementsprechend benehemn heisst: den windows-balloon-tip verwenden und nicht wie skype und thunderbird eigene tooltips erfinden die sich gegenseitig überlagern
windows-balloon-tips werden von betriebssystem erzeugt und der reihe nach angezeigt - wenn schon einer dort ist, wird der nicht sofort durch einen neuen ersetzt/überbledet/deaktiert sondern einfach brav gewartet - so solls sein
Hallo,
dementsprechend benehemn heisst: den windows-balloon-tip verwenden und
nicht wie skype und thunderbird eigene tooltips erfinden die sich
gegenseitig überlagern
Wie bereits geschrieben kann der Benutzer ja bestimmen, wie - und vor
allem ob - sich die Nachricht von neuen Postings aeussern soll.
windows-balloon-tips werden von betriebssystem erzeugt [..]
Balloon-Tips haben eine sehr begrenzte Moeglichkeit der Interaktion.
Zum Beispiel ist es nicht moeglich, Inhalte des Tips zu verlinken.
Genau das (und noch einiges mehr) habe ich jedoch vor, damit man
durch einen einfachen Klick auf den entsprechenden Beitrag gelangt.
Bitte nicht falsch verstehen, aber ich versteh nicht so recht was ihr
eigentlich wollt. Wenn ich _fuer mich_ ein Programm schreibe, kann es
mir doch ziemlich egal sein, ob der eine oder andere hier das mag oder
nicht. Und meine Frage zielte ja auch nicht auf die Sinnhaftigkeit des
Ganzen, sondern auf die zu verwendende Technologie ab.
Aber dennoch Danke fuer deine Antwort.
MfG,
Sympatisant
Moin!
Bitte nicht falsch verstehen, aber ich versteh nicht so recht was ihr
eigentlich wollt. Wenn ich _fuer mich_ ein Programm schreibe, kann es
mir doch ziemlich egal sein, ob der eine oder andere hier das mag oder
nicht.
Du hast gefragt, warum du keine Antworten kriegst. Offenbar WAR es dem Forum ziemlich egal, was für ein Progamm du für dich schreibst, und welche Probleme du damit hast.
Du hast auch von Beat die Antwort bekommen, die er dir NICHT gegeben hat, und beschwerst dich, dass du sie nicht nachvollziehen kannst bzw. die Kritik ungerechtfertigt findest. Rate mal, warum Beat diese Antwort nicht geben wollte... :)
- Sven Rautenberg
Hallo Sven,
Du hast gefragt, warum du keine Antworten kriegst. Offenbar WAR es dem Forum ziemlich egal,
was für ein Progamm du für dich schreibst, und welche Probleme du damit hast.
Es war vielleicht ein wenig zu harsch von mir ausgedrueckt, fuerwahr; deshalb schrieb ich ja auch zuvor, dass man mich bitte nicht missverstehen solle. Aber deine lakonische Anwort stimmt ja so auch nicht so ganz. Man beachte, dass doch tagein und tagaus Menschen ihre technischen Probleme hier posten, und diese durchaus andere Leute interessieren - ich meine, davon lebt ja schliesslich ein Forum wie dieses ;-)
Ehrlich gesagt, denke ich jedoch nicht, dass es daran lag, dass man mir nicht antworten _wollte_, sondern - wie es suit auch bereits eroertert hat - eher daran, dass man nicht konnte. Und im letzteren Falle faellt es einem dann natuerlich leicht, dennoch seinen Senf dazu abzugeben.. doch davon habe ich nichts. Deshalb meine Reaktion.
Du hast auch von Beat die Antwort bekommen, die er dir NICHT gegeben hat, und beschwerst dich,
dass du sie nicht nachvollziehen kannst bzw. die Kritik ungerechtfertigt findest.
Also beschwert habe ich mich doch wohl nicht.. zumindest sollte es nicht so rueber kommen. Ich habe, wenn ueberhaupt, in dem gleichen Ton geantwortet, in dem auch er auf mein Posting geantwortet hat.
Rate mal, warum Beat diese Antwort nicht geben wollte... :)
Also haette er sie nicht geben wollen, so haette er es auch nicht getan. Konjunktiv hin oder her, er _hat_ die Antwort gegeben, und darauf habe ich reagiert.
Wie auch immer, es wurde mir nachher einfach zu destruktiv, als dass ich noch haette weiter schreiben wollen.. (ich weiss, jetzt tue ich es doch wieder..) Aber, es ist auch alles nicht so wild, ich hatte eine Frage, die hier nicht beantwortet werden konnte. Das habe ich jetzt verstanden und das Leben geht weiter ;-)
Gruesse aus Berlin
Sympatisant
Hallo Beat,
Mach keinen Blödsinn damit, den User mit Information unnötig zu
belästigen, wenn er nicht einmal eine ernste Chance hat, die
Information wahrzunehmen, oder auf die Anzeige einen Einfluss auszuüben.
Ich verstehe deine Antwort nicht so ganz.
Zum einen handelt es sich, wie bereits gesagt, um meinen Freundeskreis.
Und die freuen sich ueber so ein Tool, da sich das bisherige Tool bereits
als durchaus praktisch erwiesen hat.
Zudem bleibt es ja schliesslich ihnen selbst ueberlassen, ob sie sich
das Programm installieren oder nicht.
Des weiteren kann man natuerlich ueber eine config-Datei bestimmen,
ob ein Popup erscheinen soll, oder nicht (so wie einige andere Optionen).
Daher verstehe ich deinen Einwand nicht so recht.
Habe bisher herausgefunden, dass es in der Version 6u10 eine
AWTUtilities-Erweiterung gibt, in der die Methode setWindowOpacity
mit Angabe eines float-Wertes implementiert ist. Das Update ist
derzeit leider jedoch noch BETA und von daher nicht nutzbar ;(
http://java.sun.com/javase/downloads/ea/6u10/6u10beta.jsp
MfG,
Sympatisant
Es steckt ein Designproblem dahinter.
Wenn ich eine Message erwarte, dann bin ich vorbereitet, in die rechte untere Ecke zu schielen.
Thunderbird zeigt mir dort erwartungsgemäss eine total blöde Message, statt das Ding sofort runterzuladen.
Wenn ich aber nicht vorbereitet bin, dann nehme ich wahr, dass sich dort unten etwas bewegt. Zu welchem Programm nun diese Notiz gehört, entzieht sich oft meiner Kenntnis.
Die Frechheit ist, dass jedes Programm glaubt, es hätte diese Pissecke für sich gepachtet, und das macht sie gänzlich nutzlos.
Jetzt ein besseres Beispiel.
Es geht auch ohne:
Die Firewall gibt mir einen schönen grossen Alert, nicht zentral auf dem Bildschirm, sondern an der Seite. Er bleibt stehen, bis ich Zeit habe, mich dem Inhalt zu widmen, weil das Problem besteht, dass er garantiert dann kommt, wenn meine Aufmerksamkeit ganz wo anders ist.
In diesem einen Fall akzeptiere ich es, eine Meldung spontan zu erhalten, die ich nicht erwarte.
Aber sonst gilt, dass Meldungen auf Abfrage geliefert werden soll, nachdem ich meine Bereitschaft zur Informationsverarbeitung aktiv bekundet habe.
Das meine ich mit 'Gast auf einem fremden PC sein'. Dass es dein Freundeskreis ist, spielt keine Rolle. Dass sie sich selbst entscheiden, eine Software zu installieren, ist keine Entschuldigung für deren Mängel.
mfg Beat
Salvete,
Wenn ich deine Nachricht so lese, dann kommt es mir so vor, als ob du ein grundsaetzliches Problem mit jeglicher Interaktion eines Betriebssystems hast. Wenn dem so ist, dann empfehle ich dir saemtliche Bereiche, wie zB das Systemtray oder das automatische Fokussieren von Fenstern, einfach zu deaktivieren. Dafuer gibt es ja schliesslich die Moeglichkeit.
Wenn ein Programm das tut, was die Anwender moechten, dann ist es gut so - wenn es diesbezueglich sogar noch konfigurierbar ist, na, dann um so besser. Und wenn alle Benutzer moechten, dass der Bildschrim alle 10 Sekunden rosa wird, und das Programm das schliesslich auch tut, dann ist auch das gut so.
Nicht falsch verstehen, aber jeder hat nun mal eine andere bzw. seine Meinung. Was mein Programm betrifft, so belasse ich es jetzt hierbei und widme mich lieber einer konstruktiven Loesung statt noch weiter ueber die Befindlichkeit eines manchen zu debatieren.
Aber dennoch Danke fuer dein Posting.
MfG,
Sympatisant
habe ich vielleicht etwas wichtiges an Information vergessen oder mich
evtl. unverstaendlich ausgedrueckt?
weniger
Oder liegt es daran, dass hier vielleicht nur wenige mit der Materie
zu tun haben?
eher ja
html/css-probleme werden hier sehr schnell behandelt - für php/perl-probleme findet man auch noch gute ratschläge - aber leute die sich daneben auch noch mit anderen dingen beschäftigen, werden schon seltener - wenn du wissen möchtest, wie du am besten pizzateig machst, wirst du hier auch sicher jemand finden, aber die wahrscheinlichkeit ist halt sehr gering, dass derjenige das sofort liest ;)
Salvete,
wenn du wissen möchtest, wie du am besten pizzateig machst, wirst du hier
auch sicher jemand finden, aber die wahrscheinlichkeit ist halt sehr
gering, dass derjenige das sofort liest ;)
Habe es schon gemerkt, eine Frage ueber Holunderwein waere wohl
sicherlich eher beantwortet gewesen ;-)
Gruss & Danke
Sympatisant
Hallo Sympatisant,
Tatsächlich gibt es mittlerweile eine Betaversion des nächsten Updates des aktuellen JDKs (Version 6), das transparente Fenster und ähnliche Spielereien unterstützt.
Artikel dazu:
< http://today.java.net/pub/a/today/2008/03/18/translucent-and-shaped-swing-windows.html#awtutilities>
Download: (Update 10 Beta)
< http://java.sun.com/javase/downloads/index.jsp>
Nun ist es zwar im Allgemeinen nicht unbedingt empfehlenswert, Entwicklungen auf Software im Beta-Stadium aufzubauen, aber da das erscheinen in dem Fall wohl nicht mehr zu lange dauern sollte und Du Deine Nutzer vermutlich zur Installation überreden kannst, wäre das eine Möglichkeit.
Die zuständige Klasse liegt allerdings noch in "sun.api", Sun wird die Unterstützung für Transparenz sicher nicht einfach wieder streichen, aber es ist gut möglich, dass Du Dein Programm nochmal umschreiben musst, wenn eine standardisierte API dafür unter java.awt auftaucht.
Mac-Unterstützung ist in dem Fall auch ein Problem, bis diese API auf dem Mac verfügbar ist, kann es noch dauern.
Es gibt auch noch die Möglichkeit, aus Java heraus native APIs anzusprechen (per JNA oder JNI). Da ist in obigem Artikel auch etwas zu verlinkt.
Grüße
Daniel
Salvete,
Tatsächlich gibt es mittlerweile eine Betaversion des nächsten Updates des aktuellen JDKs (Version 6), das transparente Fenster und ähnliche Spielereien unterstützt.
Ja, das habe ich auch bereits herausgefunden.
Artikel dazu:
http://today.java.net/pub/a/today/2008/03/18/translucent-and-shaped-swing-windows.html#awtutilities
Und genau daher hatte ich meine Informationen ;) Uebrigens m.M.n. ein sehr guter Artikel!
[..] aber da das erscheinen in dem Fall wohl nicht mehr zu lange dauern sollte
Das konnte ich bisher noch nicht in Erfahrung bekommen, wann das Release geplant ist. aber bei den Update-Versionen dauert es ja tatsaechlich selten richtig lange.
Es gibt auch noch die Möglichkeit, aus Java heraus native APIs
anzusprechen (per JNA oder JNI). Da ist in obigem Artikel auch etwas zu
verlinkt.
Danke vielmals!
MfG,
Sympatisant
Hallo!
Jetzt habe ich mir mal Jambi naeher angeschaut. Dass ist sozusagen eine Bruekce zwischen QT und Java (von Trolltech).
http://dist.trolltech.com/developer/download/webstart/
Das gefaellt mir sehr gut, es exsitiert sogar ein Eclipse-Plugin + GUI-Builder, jedoch ist das ganze nicht kostenlos und 1500$ sind mir einfach zu viel dafuer ;)
Wenn Du OpenSource-Software schreibst, kostet es nichts:
http://trolltech.com/downloads/opensource#qt-jambi-open-source
Du schreibst die Software ja offensichtlich sowieso nur für Deinen Freundeskreis - welches Problem sollte denn da die GPL darstellen? Deine Freunde bekommen halt die Rechte, die Software ebenfalls unter der GPL weiterzuverteilen und zu modifizieren. Wo ist da das Problem?
Viele Grüße,
Christian
Salvete,
meine Guete.. und dafuer dieses ganz hin und her in diesem Thread! Danke.. ich koennt mir in den Arsch beissen! ;)
Hatte ich es doch noch richtig in Erinnerung, dass es kostenlos ist. Ich habe mich nur von dem Text am Anfang der Seite irritieren lassen: "Try Qt for yourself! Free 30-day evaluation versions are available with full source code and commercial support." ..und dachte, das haetten sie dann jetzt so geaendert.
Mensch, herzlichen Dank!
MfG,
Sympatisant
PS: Dann wurde mir hier ja doch noch geholfen ;-)
Hi!
.. ich koennt mir in den Arsch beissen! ;)
Na toll _jetzt_ kommst du damit und ich habe gerade noch ne Pizza bestellt.
Naja vielleicht klappst's beim nächsten Mal...
off:PP
Hallo Peter,
an deiner Stelle wuerde ich die Pizza bevorzugen ;-)
Gruesse,
Sympatisant
Hi!
Hallo Peter,
an deiner Stelle wuerde ich die Pizza bevorzugen ;-)
Ja, ja was so ein wenig Schlaf doch bewirken kann ;) - ich hatte nämlich gelesen: '_ihr_ könnt mir...'
off:PP