Javahelp

Status
Nicht offen für weitere Antworten.
L

leo

Gast
Hallo, wer kennt sich mit der JavaHelp API aus? - Ich habe folgendes Problem:

Code:
//c = Component
//mapID = ID eines Hilfetopics
helpbroker.enableHelpKey(c, mapID, null);

Normalerweise löst man mit dieser Methode die Online-Hilfe aus. Wenn man damit alle Swing-Objekte registriert hat, könnte man die Kontextsensivität aller Swing-Objekte in einem Dialog auslösen.

Mein Problem ist, dass ich nur ein Swing-Objekt (meistens ein JTextfield) in einem Dialog erhalte und im Hilfesystem registrieren kann. Das Fenster kann ich somit nicht registrieren. Beim Aufruf der Online-Hilfe kann ich also nicht über das Fenster gehen, sondern muss mir ein bestimmtes Objekt im Fenster fokussieren, um die Hilfe auszulösen.

Die Anforderung meiner Arbeit ist nur, über Fensterebene die Hilfe aufzurufen. Eine Lösung wäre die Tastatureingaben (F1-Taste) zu überwachen. Mit keyListener kenne ich mich leider gar nicht aus. Muss man hierbei auch die Componente registieren? - hat jmd codebeispiel für mich?
 

foobar

Top Contributor
enableHelpKey macht genaus das was du willst, es verknüft die F1-Taste mit der Hilfe. Du darfst aber erst den Helpkey aktivieren , wenn du alle Komponenten mit setHelpId registriert hast.
 
L

leo

Gast
ja, mit enableHelpKey habe ich schon geschafft, eine Hilfe mit der F1-Taste auszulösen.
Die Anwendung ist jedoch so aufgebaut, dass nur ein Fenster (z.B. vom Component JFrame) erzeugt wird und nach jeder Aktion die Inhalte dieses Fensters neu generiert werden. Das bedeutet, dass ich die Inhalte des Fenster (z.b. darin enthaltenden JTextfields) mit enableHelpKey zwar registrieren kann, aber nicht das Fenster (da es sich immer um das selbe Fenster handelt).

Ich möchte über fensterebene die Hilfe auslösen. Im Javahelp API gibst da die Methoden:

DisplayHelpFromFocus
DisplayHelpFromSource
DisplayHelpAfterTracking

Was ist denn genau der Unterschied?
 

foobar

Top Contributor
DisplayHelpFromFocus: Zeigt die Hilfe anhand der Komponte die den Focus hat an.

DisplayHelpAfterTracking: Ist eine kontextsensitive Hilfe wie man sie von Umschalt +F1 kennt.

DisplayHelpFromSource: Das ist aglaube ich auch eine kontextsensitive Hilfe.

Mir ist heiß *ächzi*
 
L

leo

Gast
Danke, ich habs jetzt hinbekommen.

Code:
ActionListener al = new CSH.DisplayHelpFromFocus(helpbroker);        
root.registerKeyboardAction(al, KeyStroke.getKeyStroke(KeyEvent.VK_HELP, 0), JComponent.WHEN_IN_FOCUSED_WINDOW);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JavaHelp Allgemeine Java-Themen 2
foobar Alternative zu JavaHelp gesucht Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben