下面是我用JAVA编制的文件浏览器,好像组件的事件处理错了。
我是自学的,没地方问的。。
这里的哪位大侠帮我改一下。。。
谢谢了。。。
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class zuo17_3 extends Frame implements ActionListener{
Label l1=new Label("路径");
TextField tf=new TextField();
ScrollPane sp=new ScrollPane(0);
Panel p1=new Panel();
Panel p2=new Panel();
Label[] l2=new Label[1000];
public zuo17_3 (String title){
super(title);
tf.setSize(150,10);
l1.setSize(30,10);
p1.add(l1);
p1.add(tf);
sp.setBounds(10,30,180,160);
p2.add(sp);
add(p1,"North");
add(p2,"Center");
tf.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() instanceof TextField){
TextField temp=(TextField)e.getSource();
File f=new File(temp.getText());
File[] fs=f.listFiles();
for(int i=0;i<fs.length;i++){
p2.add(l2[i]);
if(fs[i].isDirectory())
l2[i].setText("目录:"+fs[i]);
else
l2[i].setText("文件:"+fs[i]);
}
}
}
public static void main(String []args){
zuo17_3 me=new zuo17_3("文件浏览器");
me.setSize(200,200);
me.setVisible(true);
}
}
l2[i] = new Label();
sp.add(l2[i]);
数组初始化并不是元素初始化,所以你要为每一个l2进行初始化。
这样显示还是有问题,我把它加上一个textarea后,验证,是没问题的。
代码如下:
package test;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyFileBrowser extends Frame implements ActionListener {
private static final long serialVersionUID = -6502544295601968846L;
Label l1 = new Label("路径");
TextField tf = new TextField(10);
ScrollPane sp = new ScrollPane(0);
TextArea ta = new TextArea();
Panel p1 = new Panel();
Panel p2 = new Panel();
Panel p3 = new Panel();
Label[] l2 = new Label[1000];
public MyFileBrowser(String title) {
super(title);
tf.setSize(150, 10);
l1.setSize(30, 10);
p1.add(l1);
p1.add(tf);
sp.setBounds(10, 30, 180, 160);
p2.add(sp);
p3.add(ta);
add(p1, "North");
add(p2, "Center");
add(p3, "South");
tf.addActionListener(this);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() instanceof TextField) {
TextField temp = (TextField) e.getSource();
File f = new File(temp.getText());
File[] fs = f.listFiles();
for (int i = 0; i < fs.length; i++) {
l2[i] = new Label();
sp.add(l2[i]);
if (fs[i].isDirectory()) {
l2[i].setText("目录:" + fs[i]);
ta.setText(ta.getText()+"\n目录:" + fs[i]);
}
else {
l2[i].setText("文件:" + fs[i]);
ta.setText(ta.getText()+"\n文件:" + fs[i]);
}
}
}
}
public static void main(String[] args) {
MyFileBrowser me = new MyFileBrowser("文件浏览器");
me.setSize(500, 500);
me.setVisible(true);
}
}
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息