找不到适合的JDateChooserstring,string,char构造函数

问题描述

我是Java的新手,我尝试修复一些朋友遇到麻烦的代码,但是我遇到了一个错误,使我感到困惑,我的错误是:

no suitable constructor found for JDateChooser(String,String,char)
    constructor JDateChooser.JDateChooser() is not applicable
      (actual and formal argument lists differ in length)
    constructor JDateChooser.JDateChooser(ImageIcon) is not applicable
      (actual and formal argument lists differ in length)
    constructor JDateChooser.JDateChooser(boolean) is not applicable
      (actual and formal argument lists differ in length)
    constructor JDateChooser.JDateChooser(String,boolean) is not applicable
      (actual and formal argument lists differ in length)
    constructor JDateChooser.JDateChooser(JCalendar) is not applicable
      (actual and formal argument lists differ in length)
    constructor JDateChooser.JDateChooser(JCalendar,boolean,ImageIcon) is not applicable
      (actual and formal argument lists differ in lengt...

我尝试为其添加构造函数,但我对Java的了解不足以对其进行修复
这是代码示例。 错误出现在代码的最后两行

        public void actionPerformed(ActionEvent e) {
            Reservation = new JFrame();
            Reservation.setAlwaysOnTop(true);
            Reservation.setTitle("R\u00E9servation");
            Reservation.getContentPane().setLayout(null);
            
            
            JPanel clientPan = new JPanel();
            clientPan.setBorder(new TitledBorder(new LineBorder(new Color(0,0),1,true),"Client",TitledBorder.LEADING,TitledBorder.TOP,null,null));
            clientPan.setBounds(10,11,424,211);
            Reservation.getContentPane().add(clientPan);
            clientPan.setLayout(null);
            
            JPanel selectClientPan = new JPanel();
            selectClientPan.setBorder(new TitledBorder(new LineBorder(new Color(0,"S\u00E9lection Client",null));
            selectClientPan.setBounds(215,21,177,154);
            clientPan.add(selectClientPan);
            selectClientPan.setLayout(null);
            
            
            final ComplexSwingX list = new ComplexSwingX(hotel);
            list.setBounds(10,29,157,114);           
            selectClientPan.add(list);
            
            
            JPanel createClientPan = new JPanel();
            createClientPan.setBorder(new TitledBorder(new LineBorder(new Color(0,"Cr\u00E9ation Client",null));
            createClientPan.setBounds(10,195,154);
            clientPan.add(createClientPan);
            createClientPan.setLayout(null);
            
            JLabel lblNom = new JLabel("Nom : ");
            lblNom.setBounds(10,24,60,14);
            createClientPan.add(lblNom);
            
            JLabel lblAdresse = new JLabel("Adresse : ");
            lblAdresse.setBounds(10,124,14);
            createClientPan.add(lblAdresse);
            
            JLabel lblPrnom = new JLabel("Pr\u00E9nom");
            lblPrnom.setBounds(10,74,14);
            createClientPan.add(lblPrnom);
            
            clientName = new JTextField();
            clientName.setBounds(99,86,20);
            createClientPan.add(clientName);
            clientName.setColumns(10);
            
            clientFirstname = new JTextField();
            clientFirstname.setBounds(99,71,20);
            createClientPan.add(clientFirstname);
            clientFirstname.setColumns(10);
            
            clientAddress = new JTextField();
            clientAddress.setBounds(99,118,20);
            createClientPan.add(clientAddress);
            clientAddress.setColumns(10);
            
            final JPanel reservationPan = new JPanel();
            reservationPan.setVisible(false);
            reservationPan.setBorder(new TitledBorder(new LineBorder(new Color(0,"R\u00E9servation",null));
            reservationPan.setBounds(69,230,323,194);
        
            final JDateChooser D1 = new JDateChooser("dd/MM/yyyy","####/##/####",'_');
            final JDateChooser D2 = new JDateChooser("dd/MM/yyyy",'_');

解决方法

您的问题恰恰是错误消息告诉您的内容。这些行:

final JDateChooser D1 = new JDateChooser("dd/MM/yyyy","####/##/####",'_');
final JDateChooser D2 = new JDateChooser("dd/MM/yyyy",'_');

是无效的语法,因为JDateChooser类没有使用两个String和一个字符作为参数的构造函数。错误消息列出了该类确实包含的所有构造函数。如果要创建JDateChooser,则必须使用其提供的构造函数之一来实现。