如何在java中实现context help 谢谢。

解决方案 »

  1.   

    楼主你问得明白一点啊,用什么ide?
      

  2.   

    给f1那个建加上listener啊 你在程序里面强行置下 他会把f1本来的功能屏蔽的
      

  3.   

    和ide有什么关系啊?我用jbuilder开发应用程序,我想应用程序具有context help功能?可以加f1的listerner吗?我来试试。但是即使有listerner了,我怎么实现context难道把help
    全记住?系统没有实现的方法吗?谢谢。
      

  4.   

    import java.awt.*;
    import java.awt.event.AWTEventListener;
    import java.awt.event.KeyEvent;import javax.swing.*;public class ContextHelpTest {
    private static JFrame helpFrame;
    private static JTextArea helpTextArea; public static void main(String[] args) {
    Toolkit.getDefaultToolkit().addAWTEventListener(
    new AWTEventListener() {
    public void eventDispatched(AWTEvent event) {
    KeyEvent ke = (KeyEvent) event;
    if (ke.getID() == KeyEvent.KEY_PRESSED && ke.getKeyCode() == KeyEvent.VK_F1) {
    showHelpInfo(ke.getComponent());
    }
    }
    }, 
    AWTEvent.KEY_EVENT_MASK); JPanel p = new JPanel();
    p.add(new JButton("Btn-1")).setName("Button-1");
    p.add(new JButton("Btn-2")).setName("Button-2");
    p.add(new JButton("Btn-3")).setName("Button-3");
    p.add(new JTextField(10)).setName("TextField-1");
    p.add(new JTextField(10)).setName("TextField-2");
    p.add(new JTextField(10)).setName("TextField-3"); JFrame f = new JFrame("HelpTest");
    f.getContentPane().add(p, BorderLayout.CENTER);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    } private static void showHelpInfo(Component component) {
    if (component == null) {
    component = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
    }

    if (component == null) {
    helpTextArea.setText("");
    return;
    } if (helpFrame == null) {
    helpFrame = new JFrame("Help");
    helpTextArea = new JTextArea(10, 20);
    JScrollPane sp = new JScrollPane(helpTextArea);
    helpFrame.getContentPane().add(sp, BorderLayout.CENTER);
    helpFrame.pack();
    helpFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    }

    Window w = SwingUtilities.getWindowAncestor(component);
    if (w == helpFrame) {
    return;
    } String compName = component.getName();
    if (compName != null) {
    helpTextArea.setText("Context help of component" + compName);
    }
    else {
    helpTextArea.setText("Context help of component" + component);
    }

    helpFrame.setLocation(w.getX() + w.getWidth(), w.getY());
    helpFrame.setVisible(true);
    helpFrame.toFront();
    }
    }