请大家看看,到底出了什么问题?是《java核心技术卷一》上的例子P26=-

qiujianben 2002-07-07 11:47:52
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.awt.io.*;
import java.awt.swing.*;
public class ImageViewer
{
public static void main(String[] args)
{
JFrame frame = new ImageViewerFrame();
frame.setTitle("ImageViewer");
frame.setSize("300,400");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}

class ImageViewerFrame extends JFrame
{
public ImageViewerFrame()
{
//set menu bar
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);

JMenu menu = new JMenu("File");
menuBar.add(menu);

JMenuItem openItem = new JMenuItem("Open");
menu.add(openItem);
openItem.addActionListener(new FileOpenListener());

JMenuItem exitItem = new JMenuItem("Exit");
menu.add(exitItem);
exitItem.AddActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});
label = new JLabel();
Container contentPane = getContentPane();
contentPane.add(label,"Center");
}

private class FileOpenListener implements ActionListener
{
//set up file choose
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
//accept all files ending by .gif
chooser.setFileFilter(new javax.swing.filechooser.FileFilter
{
public boolean accept(File f)
{
return f.getName().toLowerCase().endsWith(".gif")||f.isDirectory();
}
public String getDescription()
{
return "GIF Images";
}
});
int r = chooser.showOpenDialog(ImageViewerFrame.this);
if (r == JFileChooser.APPROVE_OPTION)
{
String name = chooser.getSelectedFile().getPath();
label.setIcon(new ImageIcon(name);
}
}
}
private JLabel label;
}

编译结果:
---------- javac ----------
ImageViewer.java:51: <identifier> expected
chooser.setCurrentDirectory(new File("."));
^
ImageViewer.java:53: <identifier> expected
chooser.setFileFilter(new javax.swing.filechooser.FileFilter
^
ImageViewer.java:65: illegal start of type
if (r == JFileChooser.APPROVE_OPTION)
^
ImageViewer.java:69: <identifier> expected
}
^
ImageViewer.java:72: 'class' or 'interface' expected
private JLabel label;
^
ImageViewer.java:73: 'class' or 'interface' expected
}
^
ImageViewer.java:73: 'class' or 'interface' expected
}
^
ImageViewer.java:4: package java.awt.io does not exist
import java.awt.io.*;
^
ImageViewer.java:5: package java.awt.swing does not exist
import java.awt.swing.*;
^
ImageViewer.java:18: cannot resolve symbol
symbol : class JFrame
location: class ImageViewerFrame
class ImageViewerFrame extends JFrame
^
ImageViewer.java:50: cannot resolve symbol
symbol : class JFileChooser
location: class ImageViewerFrame.FileOpenListener
JFileChooser chooser = new JFileChooser();
^
ImageViewer.java:51: package chooser does not exist
chooser.setCurrentDirectory(new File("."));
^
ImageViewer.java:53: package chooser does not exist
chooser.setFileFilter(new javax.swing.filechooser.FileFilter
^
ImageViewer.java:10: cannot resolve symbol
symbol : class JFrame
location: class ImageViewer
JFrame frame = new ImageViewerFrame();
^
ImageViewer.java:13: cannot resolve symbol
symbol : variable JFrame
location: class ImageViewer
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
^
ImageViewer.java:23: cannot resolve symbol
symbol : class JMenuBar
location: class ImageViewerFrame
JMenuBar menuBar = new JMenuBar();
^
ImageViewer.java:23: cannot resolve symbol
symbol : class JMenuBar
location: class ImageViewerFrame
JMenuBar menuBar = new JMenuBar();
^
ImageViewer.java:26: cannot resolve symbol
symbol : class JMenu
location: class ImageViewerFrame
JMenu menu = new JMenu("File");
^
ImageViewer.java:26: cannot resolve symbol
symbol : class JMenu
location: class ImageViewerFrame
JMenu menu = new JMenu("File");
^
ImageViewer.java:29: cannot resolve symbol
symbol : class JMenuItem
location: class ImageViewerFrame
JMenuItem openItem = new JMenuItem("Open");
^
ImageViewer.java:29: cannot resolve symbol
symbol : class JMenuItem
location: class ImageViewerFrame
JMenuItem openItem = new JMenuItem("Open");
^
ImageViewer.java:33: cannot resolve symbol
symbol : class JMenuItem
location: class ImageViewerFrame
JMenuItem exitItem = new JMenuItem("Exit");
^
ImageViewer.java:33: cannot resolve symbol
symbol : class JMenuItem
location: class ImageViewerFrame
JMenuItem exitItem = new JMenuItem("Exit");
^
ImageViewer.java:42: cannot resolve symbol
symbol : variable label
location: class ImageViewerFrame
label = new JLabel();
^
ImageViewer.java:42: cannot resolve symbol
symbol : class JLabel
location: class ImageViewerFrame
label = new JLabel();
^
ImageViewer.java:43: cannot resolve symbol
symbol : method getContentPane ()
location: class ImageViewerFrame
Container contentPane = getContentPane();
^
ImageViewer.java:44: cannot resolve symbol
symbol : variable label
location: class ImageViewerFrame
contentPane.add(label,"Center");
^
ImageViewer.java:47: ImageViewerFrame.FileOpenListener should be declared abstract; it does not define actionPerformed(java.awt.event.ActionEvent) in ImageViewerFrame.FileOpenListener
private class FileOpenListener implements ActionListener
^
ImageViewer.java:50: cannot resolve symbol
symbol : class JFileChooser
location: class ImageViewerFrame.FileOpenListener
JFileChooser chooser = new JFileChooser();
^
29 errors
Normal Termination
输出完成(耗费 2 秒)。
...全文
106 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
苏格拉顶777 2002-07-08
  • 打赏
  • 举报
回复
FileOpenListener的定义里面,你把实现的代码放在了,类成员定义里了。
应该放在实现的actionPerformed函数里。语法错误。
KooKvv 2002-07-08
  • 打赏
  • 举报
回复
private class FileOpenListener implements ActionListener
{
下少一行code.
public void actionPerformed(ActionEvent evt)
{
内容概要:本文详细介绍了Anaconda的下载、安装与配置方法(2025最新版)。Anaconda是一个开源的Python/R数据科学集成开发平台,预装了1500多个科学计算库,并提供conda包管理和环境管理功能。文章首先列了系统要求,接着分别讲述了适用于不同操作系统的下载方式,包括官方下载和国内镜像下载。然后,具体讲解了Windows、macOS和Linux三种操作系统的安装步骤,以及环境变量的手动配置方法。此外,还提供了验证安装是否成功的命令和配置国内镜像源的方法,以提高下载速度。最后,列了一些常用conda命令和常见问题的解决方案。 适合人群:从事数据科学、机器学习领域的研究人员和开发者,特别是需要频繁使用Python科学计算库的用户。 使用场景及目标:①帮助用户快速搭建Python开发环境,尤其是需要多个Python版本共存或隔离环境的情况下;②解决因网络原因导致的下载速度慢的问题;③提供详细的安装指南,确保安装过程顺利进行;④指导用户正确配置环境变量,避免常见的安装后无法使用的错误。 阅读建议:由于Anaconda涉及多平台安装和配置,建议读者根据自己的操作系统选择相应的章节重点阅读,并严格按照步骤操作。对于初次使用者,建议先从简单的安装入手,再逐步学习环境管理和包管理的相关命令。

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧