我试图在标签(ecran)上显示我刚刚使用FileDialog对象选择的文件和路径。
但是它不起作用。 我的代码返回的是空值,我不知道为什么。
你能帮我吗?
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class FerPrinc extends Frame implements ActionListener{
Label ecran;
public String path = null;
public FerPrinc(String titlu){
super(titlu);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
final Label ecran = new Label();
add(ecran, BorderLayout.SOUTH);
Button b = new Button("Choose file");
add(b, BorderLayout.NORTH);
b.addActionListener(this);
System.out.println (path);
ecran.setText(path);
pack();
}
public void actionPerformed(ActionEvent e){
FileDialog fd = new FileDialog(this, "Choose file", FileDialog.LOAD);
fd.setDirectory(".");
fd.show();
path = fd.getDirectory()+fd.getFile();
//System.out.println (path);
//ecran.setText(path);
}
}
public class TestFileDialog {
public static void main (String[] args) {
FerPrinc f = new FerPrinc("Test Dile Dialog");
f.show();
}
}
实际结果为NULL。 我希望看到我选择的文件的完整路径。
答案 0 :(得分:0)
您不能,这不是ActionListener
或GUI的工作方式。像大多数GUI一样,Swing是事件驱动的,发生某些事情,您对此做出反应,这不是线性的。在按钮上注册ActionListener
不会停止代码执行,不会等待用户按下按钮,如果他们从不执行该怎么办?相反,您需要等到ActionListener
被触发并随后执行关联的操作。
这是观察者模式的基本概念。
我认为您需要花更多时间来浏览Creating a GUI With JFC/Swing,How to Use Buttons, Check Boxes, and Radio Buttons和How to Write an Action Listener,因为这是开始编写自己的应用程序之前应了解的API的基本概念