在我的GUI中,我有几组单选按钮,每组都有两个单选按钮。第一个单选按钮与文本正常,而另一个仅是一个单选按钮,并且其旁边有JDatePicker。我想模仿单选按钮的行为,以使JDatePicker看起来与之耦合,因此,当它悬停在JDatePicker的文本字段上时,单选按钮会亮起,并且在单击时,单选按钮会更改为该字段。
我已经创建了一个动作侦听器并将其添加到JDatePickerImpl,并尝试侦听该组件,但是什么也没发生-单击文本字段或按钮时不会触发侦听器。
UtilDateModel model = new UtilDateModel();
Properties p = new Properties();
p.put("text.today", "Today");
p.put("text.month", "Month");
p.put("text.year", "Year");
JDatePanelImpl datePanel = new JDatePanelImpl(model, p);
// Don't know about the formatter, but there it is...
fromDatePicker = new JDatePickerImpl(datePanel, new
DateLabelFormatter());
fromDatePicker.setBounds(45, 186, 170, 26);
JFormattedTextField textField =
fromDatePicker.getJFormattedTextField();
textField.setFont(new Font("Tahoma", Font.PLAIN, 14));
nowRdBtn = new JRadioButton("Right This Second");
nowRdBtn.setBounds(22, 235, 139, 29);
buttonGroup_1.add(nowRdBtn);
nowRdBtn.setFont(new Font("Tahoma", Font.PLAIN, 14));
TTListener listener = new TTListener();
fromDatePicker.addActionListener(listener);
private class TTListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent event) {
if (event.getSource() == fromDatePicker) {
System.out.print("Done");
beginningRdBtn.setEnabled(false);
fromDateRdBtn.setEnabled(true);
}
}
}
各个组件均按预期工作,但所需的耦合行为不起作用。从JDatePickerImpl获取相应的JFormattedTextField并进行监听也不会产生任何结果。
答案 0 :(得分:0)
我猜您使用的JDatePickerImpl
是org.jdatepicker.impl.JDatePickerImpl
。在这里,ActionListener
仅在用户选择日期时才会触发。您应该尝试添加MouseListener
并实现mouseEntered()
和mouseExited()
。