![](/img/trans.png)
[英]2 jDateChooser how to disable the date of other jDatechooser
[英]How do we disable editing options on JDateChooser?
我正在使用JDateChooser
來允許用戶輸入日期。 如何在出現的文本字段上禁用編輯選項? 我不希望用戶在該文本字段中輸入任何內容 - 只能通過從日歷中單擊來輸入輸入。 我如何做到這一點?
下面是我的代碼:
public class PQReport {
// product quotations report
public JPanel panel;
public PQReport() {
panel = new JPanel();
panel.setPreferredSize(new Dimension(125, 300));
initUI();
}
public void initUI() {
panel.setLayout(new net.miginfocom.swing.MigLayout());
JDateChooser chooser = new JDateChooser();
chooser.setLocale(Locale.US);
//chooser.isEditable(false);
chooser.setDateFormatString("yyyy-MM-dd");
panel.add(new JLabel("Date of Birth:"));
panel.add(chooser);
panel.add(new JButton("click"));
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
PQReport rep = new PQReport();
JFrame f = new JFrame();
f.setSize(400, 400);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(rep.panel);
}
});
}
}
一種方法是在選擇器的IDateEditor
、 JTextFieldDateEditor
上調用setEditable(false)
。
JDateChooser chooser = new JDateChooser();
JTextFieldDateEditor editor = (JTextFieldDateEditor) chooser.getDateEditor();
editor.setEditable(false);
這允許選擇新日期,同時禁止通過JTextField
本身進行更改:
替代方法chooser.setEnabled(false)
具有完全禁用JDateChooser
的效果。
或者,試試這個完全禁用JDateChooser
代碼:
JDateChooser chooser = new JDateChooser();
chooser.setEnabled(false);
你必須把:
editor.setEnabled(false);
代替:
editor.setEditable(false);
所以正確的代碼是(我測試過):
JDateChooser chooser = new JDateChooser();
JTextFieldDateEditor editor = (JTextFieldDateEditor) chooser.getDateEditor();
editor.setEnabled(false);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.