java 找不到符号动作侦听器
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/13699003/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
cannot finds symbol action listener
提问by Eric
i am doing a browse file class by using JFileChooser. i meet a problem when compile. it keep told me than cannot find symbol actionlistener. below is my code:
我正在使用 JFileChooser 浏览文件类。编译时遇到问题。它一直告诉我找不到符号动作监听器。下面是我的代码:
import java.util.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.text.*;
import javax.swing.filechooser.*;
public class BrowseForFile
{
private JTextField txtFileName;
private JFrame layout;
public BrowseForFile()
{
super();
initialize();
}
public void initialize()
{
//empty layout
layout = new JFrame();
layout.setTitle("Task Synchronization ");
layout.setBounds(100, 100, 800, 600);
layout.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
layout.getContentPane().setLayout(null);
//set the copyright
JLabel lblNewLabel_5 = new JLabel("(c) 2012 All Rights Reserved");
lblNewLabel_5.setForeground(Color.GRAY);
lblNewLabel_5.setFont(new Font("Tahoma", Font.PLAIN, 10));
lblNewLabel_5.setHorizontalAlignment(SwingConstants.RIGHT);
lblNewLabel_5.setBounds(527, 548, 255, 14);
layout.getContentPane().add(lblNewLabel_5);
//set the label
JLabel lblSendAFile = new JLabel("Select a file to be sent to all nodes");
lblSendAFile.setBounds(404, 400, 378, 14);
layout.getContentPane().add(lblSendAFile);
//set the textfield
txtFileName = new JTextField();
txtFileName.setBounds(404, 425, 277, 20);
layout.getContentPane().add(txtFileName);
txtFileName.setColumns(10);
//set the browse button and let it to choose file after click.
JButton btnBrowse = new JButton("Browse");
btnBrowse.setBounds(691, 424, 91, 23);
layout.getContentPane().add(btnBrowse);
btnBrowse.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File(dirName));
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
FileNameExtensionFilter filter = new FileNameExtensionFilter(".txt only", "txt");
chooser.setFileFilter(filter);
try {
int code = chooser.showOpenDialog(null);
if (code == JFileChooser.APPROVE_OPTION) {
File selectedFile = chooser.getSelectedFile();
Scanner input = new Scanner(selectedFile);
String f=selectedFile.getName();
txtFileName.setText("File Name is: "+f);
}
} catch (Exception f) {
f.printStackTrace();
}
}
});
}
public static void main(String[] args)
{
try
{
BrowseForFile window = new BrowseForFile();
window.layout.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
this is the error :
这是错误:
BrowseForFile.java:52: error: cannot find symbol
btnBrowse.addActionListener(new ActionListener()
^
symbol: class ActionListener
location: class BrowseForFile
1 error
can anyone tell me what is the error ? thanks in advance.
谁能告诉我错误是什么?提前致谢。
回答by Isaac
import java.awt.event.ActionListener; // seems to be missing.
回答by Ahmet Karakaya
You have to import following classess.
您必须导入以下类。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
回答by atripathi
Since your question has already been answered, I would like to offer a suggestion.
既然你的问题已经得到解答,我想提个建议。
Use an IDE like Eclipse or Netbeans. They take care of imports, formatting, checked exceptions, etc making your life much easier.
使用 Eclipse 或 Netbeans 等 IDE。他们负责导入、格式化、检查异常等,让您的生活更轻松。
回答by Vallabh Patade
import java.awt.* means import all the classes from this package but not from the sub packages. For every sub package, you have to put separate import statement. e.g. import java.awt.event, import java.awt.datatransfer.* etc.
import java.awt.* 表示从这个包中导入所有类,但不从子包中导入。对于每个子包,您必须放置单独的导入语句。例如导入 java.awt.event,导入 java.awt.datatransfer.* 等。