黑马程序员技术交流社区
标题:
(GUI),报错
[打印本页]
作者:
黑马李刚
时间:
2011-9-9 17:52
标题:
(GUI),报错
(sorry for the bad format)
编译时报错:第38行“不是语句”
第38行需要".class"[code=java]import java.awt.*;
import java.awt.event.*;
import java.io.*;
class L
{
private Frame f;
private Button b;
private TextField tf;
private TextArea ta;
public void init()
{
f=new Frame();
f.setBounds(110,200,400,300);
f.setLayout(new FlowLayout());
tf=new TextField(30);
b=new Button("转到");
ta=new TextArea(33,40);
f.add(tf);
f.add(b);
f.add(ta);
myEvent();
f.setVisible(true);
}
public void myEvent()
{
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
if(dir.exists()&&dir.isDirectory())
String dirPath=tf.getText();
File dir=new File(dirPath);
String[] names=dir.list();
for(String name:names)
{
System.out.println(name);
}
ta.setText(text);
tf.setText("");
}
});
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent a)
{
System.exit(0);
}
});
}
public static void main(String args[])
{
L l=new L();
l.init();
}
}[/code]
[
本帖最后由 黑马李刚 于 2011-09-09 20:02 编辑
]
作者:
李叶
时间:
2011-9-9 21:47
问题其实挺多的……我简单说一下吧:
第一个问题:先看一下你的第35~38行
if(dir.exists()&&dir.isDirectory())
String dirPath=tf.getText();
File dir=new File(dirPath);
复制代码
由于变量是必须先定义后使用的
而你这三行语句中,dir这个变量是先在if中使用,然后才在下面定义的
所以应当把下面两行代码放到上面,也就是改成下面这样:
String dirPath=tf.getText();
File dir=new File(dirPath);
if(dir.exists()&&dir.isDirectory())
复制代码
第二个问题:看一下你的39行
String [] names=dir.list();
复制代码
第39行的dir.list()方法返回的是一个List类型的对象,所以这里赋值给String[]数组显然会出错
第三个问题:看一下你的44行
ta.setText(text);
复制代码
这里出现的text变量是在哪里定义的呢?
[
本帖最后由 李叶 于 2011-09-09 21:48 编辑
]
作者:
匿名
时间:
2011-9-9 23:00
呵呵,李叶同学出现了~问题搞定了~
作者:
匿名
时间:
2011-9-9 23:18
才发现我的代码一团糟啊。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2