0

これは私の JButton です。「完全なコードを表示できます」、

        JButton cor =new JButton();
        cor.setText("Coor");
        mainframe.add(cor);
        window.getContentPane().add(mainframe);
        window.pack();
        window.setVisible(true);

キーボードを使用してこのボタンをアクティブにする方法について、助けが必要です。たとえば、「CTRL + A」を押します

いくつかの Web サイトを赤くしたところ、「キー バインド」を使用する必要があることがわかりましたが、それでもその方法を取得できます。

以前のトピックは役に立たないので、このトピックが重複しているとは言わないでください。

cor.getInputMap().put(KeyStroke.getKeyStroke("F2"),"act"); 

Action act = new AbstractAction() {
            public void actionPerformed(ActionEvent e) {
                PointerInfo a = MouseInfo.getPointerInfo();
                Point b = a.getLocation();
                int xC = (int) b.getX();
                int yC = (int) b.getY();
                textArea.replaceSelection("X-Coordinates:" + xC + "  Y-Coordinates: " + yC + "\n");
            }
        };
4

2 に答える 2

2

それがあなたの問題の理由かどうかはわかりませんが、あなたの例から、キーをアクションの名前にリンクしていることがわかりますが、アクションの名前を実際のアクションオブジェクトにリンクgetInputMapするために使用するのを忘れていましたgetActionMap

cor.getActionMap().put("act", act);

また、クレートCtrl+Aに使用できます

cor.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
                KeyStroke.getKeyStroke('A',InputEvent.CTRL_DOWN_MASK), "act");
于 2013-08-14T21:04:37.250 に答える