Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: Mandalor am 23.06.05 - 11:58:48

Titel: Textcursor in JTextfield
Beitrag von: Mandalor am 23.06.05 - 11:58:48
Hallo,

ich habe folgendes Problem: in einem Applet, welches in einer Notesmaske hängt, fehlt der Textcursor, wenn ich in das Textfeld klicke. Hat jemand ne Idee, an was das liegen könnte?

(Ich habe mal dran rumprobiert: Der Textcurser ist manchmal zu sehen, habe aber keine ursache finden können)

PS.: Das Aplett ist nicht von mir und ich habe 0 Erfahrung mit java. :'(
Titel: Re: Textcursor in JTextfield
Beitrag von: Marinero Atlántico am 23.06.05 - 13:39:16
hast du den source code?
Titel: Re: Textcursor in JTextfield
Beitrag von: Mandalor am 23.06.05 - 13:54:25
JTextField pwdField = new JTextField();
      pwdField.requestFocus(); // ein Versuch von mir, der aber nichts gebracht hat
      if (!editmode) {
         pwdField.setEnabled(false);
      }


Ich habe in zwischen etwas rumprobiert, aber es ist nicht von Erfolg gekrönt  :-[
Titel: Re: Textcursor in JTextfield
Beitrag von: animate am 23.06.05 - 15:17:03
Das Problem liegt IMHO am Notes-Client, nicht am Applet. Ich hatte das auch schon mal bei den Zellen einer JTable. Wir haben das damals umschifft, in dem wir einen eigenen CellEditor geschrieben haben, glaube ich. Ich weiß es aber nicht mehr. Und an die Lösung komme ich auch nicht mehr ran, die ist in meiner alten Firma.
Titel: Re: Textcursor in JTextfield
Beitrag von: Mandalor am 23.06.05 - 15:28:12
Danke, das gibt mir erst einmal Gewissheit, da suche ich wenigstens nicht mehr ins leere hinein. ::)
Titel: Re: Textcursor in JTextfield
Beitrag von: Ralf_M_Petter am 24.06.05 - 09:02:31
Hallo!

Ich kenne jetzt deinen Code nicht, eventuell postetes du ihn mal, den raten gehört nicht zu meinen Stärken.

Aber ich verwende in Notes oft den Code:

((JTextField)editorComp).getCaret().setVisible(true);

Das sollte das Caret = Cursor einschalten.

In dem Fall ist das der Code in einer JTable in der Methode editCellAt


Grüße

Ralf
Titel: Re: Textcursor in JTextfield
Beitrag von: Thomator am 27.07.05 - 12:27:19
Hi,

das Problem ist wahrscheinlich das Verwenden von Javax-Zeugs.
Ich hatte vor kurzem das gleiche Problem.

Du mußt das Applet von lotus.domino.AppletBase ableiten und dann mit den AWT-Klassen (TextField usw.) arbeiten. Dann funzt das (auch bei TextAreas mit den Scrollbalken).

Thomas
Titel: Re: Textcursor in JTextfield
Beitrag von: Ralf_M_Petter am 27.07.05 - 12:32:47
Das Javax Zeug wie du es nennst ist die Basis von Swing und ich würde niemals AWT verwenden, wenn ich Seing haben kann. Aber scheinbar ist Mandalor eh nicht daran interessiert sonst hätte er sich doch mal gemeldet. Aber so ist es oft man versucht jemand zu helfen und der meldet sich nicht mehr.

Grüße

Ralf
Titel: Re: Textcursor in JTextfield
Beitrag von: flaite am 27.07.05 - 12:42:53
Swing benutzt von Hause aus gewisse awt-Klassen (z.B. java.awt.Event). Jedoch soll man nicht awt-Klassen wild mit swing Klassen mixen und hier ist vermutlich die Wurzel der geschilderten Probleme.
AWT wurde von Sun im Jahre 1995 in einer 2 Monats-Aktion aus dem Boden gestampft und wurde in weiten Teilen seit 1998 nicht weiterentwickelt, während an Swing heftig gearbeitet wurde und wird. Wer heute noch awt benutzt ohne wirklich gute Gründe zu haben tut Microsoft einen Gefallen, da awt wirklich definitiv schlecht ist.

Axel
Titel: Re: Textcursor in JTextfield
Beitrag von: Ralf_M_Petter am 27.07.05 - 12:49:17
Swing benutzt von Hause aus gewisse awt-Klassen (z.B. java.awt.Event). Jedoch soll man nicht awt-Klassen wild mit swing Klassen mixen und hier ist vermutlich die Wurzel der geschilderten Probleme.


Axel

Nein meiner Erfahrung hat die Notes JRE ein Problem mit dem Caret. Ich musste in meinen Programmen auch immer Tricksen, vor allem in JTables. Aber wie gesagt Mandalor ist sowieso so ein Looser der seine Fragen nicht mehr weiter beachtet :-( Leider muß ich mich da immer so ärgern.

Grüße

Ralf
Titel: Re: Textcursor in JTextfield
Beitrag von: Thomator am 29.07.05 - 11:18:10
Hi Ralf,

ich wollte mit 'Javax-Zeugs' das Ganze nicht entwerten, den AWT-Klassen ist es in jedem Fall vorzuziehen.
Nur Notes hat in der Darstellung von Swing-Komponenten aber eben halt so seine Probleme.
In einem JText-Field ist es nicht nur die Darstellung, sondern auch das Event-Handling. Das kann man gut austesten, wenn man einem JTextField einen Focuslistener anhängt und sich mal die Ereignisse augeben läßt, die so ausgelöst werden.

Die gainFocus-Methode wird eigentlich überhaupt nicht aufgerufen, nur die lostFocus().

Ein sauberes Arbeiten ist in Applets, die in Notes-Dokumenten eingebettet sind, nur mit AWT möglich.

Thomas
Titel: Re: Textcursor in JTextfield
Beitrag von: Mandalor am 29.07.05 - 11:28:38
Sorry, aber da Thomator wieder aus dem urlaub gekommen ist, habe ich das Thema einfach vergessen. Er hat sich nun weiter um das Problem gekümmert (und mich auch auf die Unhalte dieses Themas hingewiesen).

Ich wollte die Frage nicht im Raum stehen lassen, ist einfach bei mir untergegangen.
Titel: Re: Textcursor in JTextfield
Beitrag von: Ralf_M_Petter am 29.07.05 - 11:37:28
@Mandalor Ok, danke für die Info.


@Thomator Ich verwende im Notesumfeld ziemlich viel Swing, aber nicht als Applet sondern in Agenten, die ein eigenes Fenster öffnen. z.B. Bildauswahldialog mit Preview in einem CMS. Oder eine erweiterte Suche in einem CRM System. Die Ergebnisse sind eigentlich sehr gut. Wobei man muß schon sehr gut abwägen, ob die mehr Möglichkeiten der Java Gui die Einschränkungen aufwiegen.

Grüße

Ralf

P.S. Bin sehr interessiert mich über Efahrungen von Java Gui im Notesumfeld auszutauschen.
Titel: Re: Textcursor in JTextfield
Beitrag von: Thomator am 29.07.05 - 14:10:43
Hallo Ralf,

also meine Erfahrungen beschränken sich diesbezüglich auf eingebettete Applets.

Und dort ist es so, dass auch ein Applet, das komplett von JApplet abgeleitet ist und ausschließlich swing-Klassen verwendet, in Anzeige und Ereignishandling nicht ordentlich funktioniert.

Bei einer JTextArea etwa wurden mir keine Scrollbalken angezeigt, weder beim manuellen zufügen noch über die autoScrolls-Eigenschaft.

Die Geschichte mit dem Curser in Textfeldern hatten wir ja schon.

Mein Fazit aus den bisherigen Erfahrungen ist also, dass in eingebetteten Applets ausschließlich AWT verwendet werden kann.

Wie verhält sich die JVM von Notes (R5 und R6) denn, wenn man aus einem Agenten eine eigene GUI aufbaut?
Klappt dort alles mit den Swing-Klassen oder liegt das Problem in der Version der JVM?

Unter R5 ist meines Wissens ja noch eine JVM der Version 1.1 die Grundlage. Swing war dort noch nicht vertreten, oder?

Thomas
Titel: Re: Textcursor in JTextfield
Beitrag von: Ralf_M_Petter am 01.08.05 - 07:34:19
Hallo Thomas!

Auch mit Java Agenten gabe es ein paar kleine Schwierigkeiten, doch konnte ich die alle so lösen, dass sie sowohl in einer externen als auch in der Notes JVM liefen. Auch unter R5 ist die Verwendung von Swing möglich und zwar durch Einbindung von Swingall.jar. Das ist eine Implementierung von Swing die von Sun für 1.1 zur Verfügung gestellt wurde. Viel besser funktioniert aber die Java Swing Unterstützung in Notes 6.x da ja auch Swing stark weiterverbessert wurde.

Grüße

Ralf
Titel: Re: Textcursor in JTextfield
Beitrag von: flaite am 01.08.05 - 12:09:00
In der Tat sind z.B. die Performance-Fortschritte mit jeder Java Version beträchtlich.
Ausserdem haben solche Dinge wie JavaWebStart die Akzeptanz von Spring im professionellen Bereich sicherlich erhöht.
Als gutes Buch für modernes Swing empfehle ich: http://www.sourcebeat.com/TitleAction.do?id=10
Definitiv das nächste Buch (PDF), dass ich kaufen werde (heute abend).
Hier ist der Blog zum Buch: http://www.jroller.com/page/scottdelap
Auch sein anderer Blog http://www.clientjava.com/blog gehört sicher zu den 10 bis 15 modernen Klassikern dieses Genres (JavaBlogs).
Einer der wenigen Blogs, denen es gelungen ist, Sponsoren zu atrahieren.


Axel