0

ユーザーがコンポーネントをクリックしたときに特定のアクションを実行できるように、SwingX JXDatePicker コンポーネントで MouseListener をアクティブにする必要があります。残念ながら、イベントは決してトリガーされません。

問題を再現する小さなコードを次に示します。

public class TestDummy4 extends JFrame implements MouseListener{

    private static final long serialVersionUID = -2424758762078571430L;

    public TestDummy4(){
        super();
        this.getContentPane().setLayout(new BorderLayout());

        //Adds date picker
        JXDatePicker dp = new JXDatePicker();
        dp.getEditor().setEditable(false);
        dp.getEditor().setHighlighter(null);
        dp.addMouseListener(this);

        this.getContentPane().add(dp);
        this.pack();
        this.setVisible(true);
    }

    public static void main(String[] args) throws IOException {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                //Builds GUI
                new TestDummy4();
            }
        });

    }

    @Override
    public void mouseClicked(MouseEvent e) {
        System.out.println("Mouse clicked");
    }

    @Override
    public void mousePressed(MouseEvent e) {
        System.out.println("Mouse pressed");
    }
    @Override
    public void mouseReleased(MouseEvent e) {}
    @Override
    public void mouseEntered(MouseEvent e) {
        System.out.println("Mouse Entered");
    }
    @Override
    public void mouseExited(MouseEvent e) {}
}

このコードでは、JXDatePicker をクリックしてもコンソールに 1 行も出力されません。

どんな助け/ヒントも大歓迎です! トーマス

4

1 に答える 1

3

をエディター コンポーネントに追加するMouseListenerには、次を使用します。JXDatePicker's

dp.getEditor().addMouseListener(this);

更新:ActionListenerコンポーネントのオープン に a を追加するには、JButton次を使用できます。

JButton openButton = (JButton) dp.getComponent(1); 
openButton.addActionListener(myActionListener);
于 2013-04-21T19:32:32.307 に答える