为什么可比接口的compareTo()方法显示为未编译?

时间:2018-10-19 09:52:03

标签: java comparable compareto

AddContact.java

package phonebook;
import java.util.TreeSet;
import java.util.Comparator;
import java.lang.Comparable;
//import java.util.Collections;
import javax.swing.JFrame;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;
import java.util.ArrayList;
import java.util.Collections;
import javax.swing.DefaultListModel;
public class AddContact extends JFrame implements ActionListener
{
    TreeSet<Contact> contactList;
    JLabel name;
    JLabel cno;
    JTextField tcno;
    JTextField tname;
    JButton b1;
    JButton b2;

    class ContactSort implements Comparator<Contact>      
    {
        public int compare(Contact c1,Contact c2) 
        {    
            return c1.getNo().compareTo(c2.getNo());
        }    
    }
    class NameSort implements Comparator<Contact>
    {
        public int compare(Contact c1,Contact c2)
        {
            return c1.getName().compareTo(c2.getName());
        }
    }
    public void AddComponentContact() 
    {
        contactList=new TreeSet<Contact>(new ContactSort());
        name=new JLabel("Enter Name:");
        tname=new JTextField(10);
        cno=new JLabel("Enter Contact No.");
        tcno=new JTextField(15);
        b1=new JButton("ADD");
        b1.addActionListener(this);

        setLayout(new FlowLayout());
        setTitle("Add Contact");
        setSize(300,300);
        setVisible(true);
        add(name);
        add(tname);
        add(cno);
        add(tcno);
        add(b1);     
    }

    public void addContactView()
    {
    }



public void actionPerformed(ActionEvent ae)
{
    String name=tname.getText();
    String cno=tcno.getText();

    if(name.equals("") || (cno.equals("")))
    {
        JOptionPane.showMessageDialog(this,"Please fill the details properly","Warning Message",JOptionPane.WARNING_MESSAGE);

    }
    else
    {
        Contact c=new Contact();
        c.setName(name);
        c.setNo(cno);

        contactList.add(c);

        ArrayList<Contact>tempList=new ArrayList<Contact>(contactList);
        Collections.sort(tempList,new NameSort());

        DefaultListModel<Contact> dlm_contact=new DefaultListModel();

        dlm_contact.removeAllElements();

       for(Contact c1:tempList)

       {
           dlm_contact.addElement(c1);
       }
       tname.setText("");
       tcno.setText("");

       JOptionPane.showMessageDialog(this,"Contact has been added","Success Message",JOptionPane.INFORMATION_MESSAGE);
       int status=JOptionPane.showConfirmDialog(this, "Do you want to add more contacts?","Confirmation",JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE);

       if(status == 0)
       {
           this.setVisible(true);
       }
       else
       {
           this.dispose();
       }
    }
}

//contactList=new TreeSet<Contact>(ContactSort());
}

contact.java

package phonebook;

public class Contact<X,Y> 
{
    public X name;
    public Y contact;

    public void setName(X name)
   {
        this.name=name;
    }

    public void setNo(Y contact)
    {
        this.contact=contact;
    }

   public X getName()
   {
       return name;
   }

   public Y getNo()
   {
       return contact;
   }

}

Menu.java

package phonebook;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Menu extends JFrame implements  ActionListener
{
    JButton b1;
    JButton b2;


    public void addComponenets()
    {
        b1=new JButton("Add Contact");
        b2=new JButton("View Contact");

        b1.addActionListener(this);
    b2.addActionListener(this);

    setLayout(new FlowLayout());
    setTitle("Phone Book Menu");
    setSize(300,300);
    setVisible(true);
    add(b1);
    add(b2);
}

public void actionPerformed(ActionEvent ae)
{
    if(ae.getSource() == b1)
    {
        AddContact ac = new AddContact();
        ac.AddComponentContact();
    }
    else if(ae.getSource() == b2)
    {
        AddContact ac = new AddContact();
        ac.addContactView();

    }
}

public static void main(String args[])
{
    Menu m1=new Menu();
    m1.addComponenets();
}
}

这是一个添加联系人并命名为App,我的compareTo()方法显示错误,而在其他桌面上运行正常... 错误是:::

  

错误:找不到符号               返回c1.getNo()。compareTo(c2.getNo());符号:方法compareTo(Object)位置:类Object   C:\ Users \ Admin \ Documents \ NetBeansProjects \ PhoneBookApplication \ src \ phonebook \ AddContact.java:53:   错误:找不到符号                   返回c1.getName()。compareTo(c2.getName());符号:方法compareTo(Object)位置:类Object注意:   C:\ Users \ Admin \ Documents \ NetBeansProjects \ PhoneBookApplication \ src \ phonebook \ AddContact.java   使用未经检查或不安全的操作。注意:重新编译   -Xlint:无需检查详细信息。

0 个答案:

没有答案