簡體   English   中英

如果鼠標懸停在jdatepicker按鈕上,如何更改鼠標光標

[英]How to change mouse cursor if mouse is over jdatepicker button

當鼠標懸停在jdatepicker按鈕上時,我試圖更改鼠標光標,但是它不起作用。

光標只是沒有變化。

這是針對Windows應用程序的,它允許用戶選擇日期。

 UtilDateModel model = new UtilDateModel();

    model.setDate(TODAY.getYear(), TODAY.getMonthValue() - 1, TODAY.getDayOfMonth());
    model.setSelected(true);

    Properties p = new Properties();
    p.put("text.year", "Ano");
    p.put("text.month", "Mês");
    p.put("text.day", "Dia");
    p.put("text.today", "Hoje");


JDatePanelImpl panel = new JDatePanelImpl(model, properties);    
    JDatePickerImpl datePicker = new JDatePickerImpl(panel, new DateLabelFormatter());   
    datePicker.setBackground(Color.WHITE);
    datePicker.setTextEditable(true);

        datePicker.setBounds(bounds);   

    datePicker.getJFormattedTextField().addKeyListener(new KeyAdapter() {
        @Override
        public void keyTyped(KeyEvent e) {
            if (((JFormattedTextField) e.getSource()).getText().length() >= 10 ) {
                e.consume();
            }
        }
    });

    ((JButton) datePicker.getComponents()[1]).setEnabled(true);
    ((JButton) datePicker.getComponents()[1]).setIcon(CALENDAR);
    ((JButton) datePicker.getComponents()[1]).setText("");
    ((JButton) datePicker.getComponents()[1]).setBackground(Color.white);

    ((JButton) datePicker.getComponents()[1]).setPreferredSize(new Dimension(5, 15));

    ((JButton) datePicker.getComponents()[1]).addMouseListener(new MouseListener() {
        @Override
        public void mouseClicked(MouseEvent e) {
        }

        @Override
        public void mousePressed(MouseEvent e) {
        }

        @Override
        public void mouseReleased(MouseEvent e) {
        }

        @Override
        public void mouseEntered(MouseEvent e) {
             ((JButton) datePicker.getComponents()[1]).setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
        }

        @Override
        public void mouseExited(MouseEvent e) {
            ((JButton) datePicker.getComponents()[1]).setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
        }
    });

結果:

結果

預期:

預期

有人能幫我嗎? 謝謝

問題解決了。

我在datepicker之前創建了一個標簽,它的位置似乎與jdatepicker按鈕的位置重疊,因此光標無法識別出要作為jbutton的區域,而是標簽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM