En ce moment je travaille sur le contenu de JavaHelp. Fondamentalement, première solution, après avoir sélectionné la fonction sélectionnée dans le menu arborescent ou le nœud (JTree), et appuyé sur la touche d'aide (F1), le contenu spécifique JavaHelp apparaîtra en fonction du nœud sélectionné. En ce moment, en essayant d'ajouter le bouton Aide, l'utilisateur doit d'abord sélectionner une fonction dans le menu ou le nœud de l'arbre et cliquer sur le bouton Aide que j'ai créé. il suppose que cela fonctionne exactement comme la première solution, mais pour l'instant, il ne fait pas apparaître le contenu correct. Comment puis-je faire le bouton d'aide pour déclencher l'action de touche F1?Comment puis-je déclencher l'action de la touche d'aide F1 en cliquant sur le bouton J
ce qui signifie que lorsque nous sélectionnons le nœud, il a déjà un focus n peut directement popup si nous appuyons sur la touche F1, le bouton d'aide ne déclencherait probablement que l'action de la touche F1.
J'ai entendu parler de la fonction doClick ou de la liaison des touches, des idées à ce sujet?
Merci
Cordialement, Aznimah
Salut, je cherche à mettre en œuvre la combinaison de touches pour déclencher l'action de la touche F1 lorsque l'utilisateur clique sur le bouton d'aide. Mais je ne sais pas comment définir le code pour déclencher l'action clé F1. Voici un code:
bouton d'action:
final String helpIconLocation = new String("/icons/help_new.png");
iconResource = CustomizedToolbar.class.getResource(helpIconLocation);
icon = new ImageIcon(iconResource);
actionButton = new JButton(icon);
actionButton.setFocusable(false);
actionButton.addActionListener(new JavaHelpHandler());
ActionListener:
private class JavaHelpHandler implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
Action javaHelpF1KeyAction = new AbstractAction();
KeyStroke helpKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0);
MainApp.getMainAppPanel().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
helpKeyStroke, "F1");
MainApp.getMainAppPanel().getActionMap().put("F1", javaHelpF1KeyAction);
}
}
private class AbstractAction implements ActionListener, Action {
@Override
public void actionPerformed(ActionEvent e) {
// TO display popup javaHelp content
HelpSystemUtil.getInstance().enableHelpFromFocus(actionButton);
}
@Override
public void addPropertyChangeListener(PropertyChangeListener listener) {
// TODO Auto-generated method stub
}
@Override
public Object getValue(String key) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean isEnabled() {
// TODO Auto-generated method stub
return false;
}
@Override
public void putValue(String key, Object value) {
// TODO Auto-generated method stub
}
@Override
public void removePropertyChangeListener(PropertyChangeListener listener) {
// TODO Auto-generated method stub
}
@Override
public void setEnabled(boolean b) {
// TODO Auto-generated method stub
}
}
Comment définir ActionMap pour déclencher l'action des touches F1? vraiment besoin d'aide sur ce
grâce
Salut, merci pour la réponse. Je viens de passer par le lien donné, mais pas entièrement compris. Pour le moment, je sélectionne simplement le menu ou le nœud de l'arbre et je clique directement sur le bouton d'aide. comment puis-je relier le bouton d'aide pour déclencher l'action F1 de la touche d'aide? –
Oui merci beaucoup pour la réponse, En tout cas, j'ai d'autres questions, comment puis-je déclencher la fonction de touches F1, ce qui signifie que les touches FI programaticaly sans besoin de presser sur le clavier –
Vous pouvez utiliser KeyBindings à la place. Docs peuvent être trouvés ici [KeyBindings] (http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html) –