小弟是初学者,写了一个通讯录的程序,下面是代码,虽然有点乱有点长不过麻烦您在你的机子上编译一下,错误只有一个,帮我看看那个错误是为什么?我一直找不到原因跪求了,这问题困扰我多时了,小弟感激不尽啊!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
class AdressList extends JFrame
{
private JTextField text1,text2;
private JButton btAdd,btFind,btRemove,btClear,btEdit;
private JList list;
private DefaultListModel model;
private Font ft;
private Container cp;
private int index=-1;

public static String []s=new String[100];
public AdressList()
{
JPanel panel=new JPanel();
JPanel panel1=new JPanel();
ft=new Font("宋体",Font.PLAIN,14);
setTitle("简单通讯录");
setSize(300,300);
setLocation(80,80);
cp=getContentPane();
cp.setLayout(new FlowLayout());
text1=new JTextField(15);
text2=new JTextField(15);
btAdd=new JButton("添加联系人");
btAdd.setFont(ft);
btRemove=new JButton("删除联系人");
btRemove.setFont(ft);
btFind=new JButton("查找联系人");
btFind.setFont(ft);
btClear=new JButton("清空联系人");
btClear.setFont(ft);
btEdit=new JButton("编辑联系人");
btEdit.setFont(ft);
panel.setLayout(new BorderLayout());
panel.add(btRemove,BorderLayout.NORTH);
panel.add(btClear,BorderLayout.CENTER);
panel.add(btEdit,BorderLayout.SOUTH);
model=new DefaultListModel();
init(model);
list=new JList(model);
list.setFont(ft);
list.setVisibleRowCount(8);
list.setFixedCellWidth(160);
JScrollPane pane=new JScrollPane(list);
btAdd.addActionListener(new ButtonListener());
btRemove.addActionListener(new ButtonListener());
btFind.addActionListener(new ButtonListener());
btClear.addActionListener(new ButtonListener());
btEdit.addActionListener(new ButtonListener());
list.addListSelectionListener(new SelectionListener());
cp.add(text1);
cp.add(btAdd);
cp.add(text2);
cp.add(btFind);
panel1.add(pane);
panel1.add(panel);
cp.add(panel1);
addWindowListener(new WindowDestroyer());
}
private static void init(DefaultListModel e)
{
e.addElement("所有联系人如下:");
try
{
BufferedReader read=new BufferedReader(new FileReader("adresslist.txt"));
int i=0;
while((s[i]=read.readLine())!=null)
{
e.addElement(s[i]);
i++;
}
}
catch(Exception ee)
{
System.out.println(ee.getMessage());
}
}
class SelectionListener implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
{
index=list.getSelectedIndex();
}
}
class ButtonListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(text1.getText().length()>0&&e.getActionCommand()=="添加联系人")
{
model.addElement(text1.getText());
text1.setText("");
}
if(text2.getText().length()>0&&e.getActionCommand()=="查找联系人")
{
String result;
result=findName(text2.getText());
if(result!="")
{
System.out.println("Yes!");
//WindowOk winok=new WindowOk();
//winok.setVisible(true);
}
else
{
System.out.println("No!");
//WindowFail winfail=new WindowFail();
//winfail.setVisible(true);
}
}
if(e.getActionCommand()=="删除联系人"&&index>=0)
model.removeElementAt(index);
if(e.getActionCommand()=="清空所有联系人")
model.removeAllElements();
}
}
class WindowDestroyer extends WindowAdapter
{
public void WindowClosing(WindowEvent e)
{
System.exit(0);
}
}
public static String findName(String si)
{
for(int i=0;i<s.length;i++)
{
if(s[i].contains(si)==true) 
return s[i];
}
return "";
}
}
class test4
{
public static void main(String[] arges)
{
AdressList adr=new AdressList();
adr.setVisible(true);
adr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

解决方案 »

  1.   

    我在我的机子上编译就有问题啦,提示 s[i].contains(si)是未知的方法,所有我就在猜想是不是s[i]这个字符串初始化出了问题,可是我又不知道该如何改。求解啊
      

  2.   


    contains从JDK1.5开始,你看下JDK的版本。如果1.5以上没有可能性。
      

  3.   

    你的jdk是什么版本?String的contains方法从1.5才支持。 
      

  4.   

    哈哈哈哈哈哈   感谢各位啊!果然是JDK这家伙搞的鬼!终于可以了!再次感激啊!!!!