Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
建立一个;“关于我”;Java中的GUI页面_Java - Fatal编程技术网

建立一个;“关于我”;Java中的GUI页面

建立一个;“关于我”;Java中的GUI页面,java,Java,我正在做一个GUI应用程序,现在正在构建GUI的“关于我”页面。这个“关于我”应该包括对我自己的介绍和一张我的照片。以下是我所做的代码: import javax.swing.event.*; import javax.swing.*; import java.awt.image.*; import javax.imageio.*; import java.io.*; import java.awt.event.*; import java.awt.*; public class Conta

我正在做一个GUI应用程序,现在正在构建GUI的“关于我”页面。这个“关于我”应该包括对我自己的介绍和一张我的照片。以下是我所做的代码:

import javax.swing.event.*;
import javax.swing.*;
import java.awt.image.*;
import javax.imageio.*;
import java.io.*;
import java.awt.event.*;
import java.awt.*;


public class ContactMe extends JFrame implements ActionListener 
{
    JPanel panelTop = new JPanel(); // new GUI components
    JButton butAboutMe = new JButton("About Me...");
    JButton butOpenFile = new JButton("Open File...");

// ...
    BufferedImage orgImg; // image of opened file

    ContactMe()
    { // A No-Argument Constructor
        setTitle ( "MyName Image Viewer X" ); //...
    }

    void initGUI()
    {
        panelTop.add(butOpenFile); //add buttons and slider to top JPanel
        panelTop.add(butAboutMe);
        add(panelTop, BorderLayout.NORTH); //add JPanel to top of JFrame
        add(butOpenFile, BorderLayout.NORTH);
        add(sPImg, BorderLayout.CENTER);
        add(labelStatus, BorderLayout.SOUTH);
// registering this class object as event listener for the Button
        butOpenFile.addActionListener(this);
// EVENT HANLDING below, with Anonymous Class approach:
// register a new listener object (of an anonymous class) to Button
        butAboutMe.addActionListener( new ActionListener() {

        public void actionPerformed(ActionEvent event) {
// show AboutMe Message Dialog window
        JOptionPane.showMessageDialog(null,
        "Members(left to right):\n" +
        "MyName(ME)\n CHAN Tai Man\n CHAN Siu Man",
        "About Me: G22m2, 2019-2020, OOP",
        JOptionPane.INFORMATION_MESSAGE,
        new ImageIcon("AboutMe.jpg"));
        } });
    }
//...
    public static void main(String[] args)
    { // Method to start program
        (new Contact()).setVisible(true);
        System.out.println("END of main() method!");
    }
}
错误1:

error: Main is not abstract and does not override abstract method actionPerformed(ActionEvent) in ActionListener
public class ContactMe extends JFrame implements ActionListener
错误2:

error: cannot find symbol sPImg
add(sPImg, BorderLayout.CENTER);
错误3:

error: cannot find symbol labelStatus
 add(labelStatus, BorderLayout.SOUTH);
然而我有三个错误,无法解决它,我真的需要一些帮助和提示。谢谢

如何修复错误 错误1:Main不是抽象的,并且不重写抽象方法。。。 当抽象类被子类化时,子类通常提供 父类中所有抽象方法的实现。 但是,如果没有,则还必须声明子类 抽象的

资料来源:

这意味着您必须提供自己的方法实现
actionPerformed(ActionEvent)

错误2和3:找不到符号
您没有声明变量
sPImg
labelStatus
。您需要定义要在Java中使用的任何变量。

您是否从某个地方复制/粘贴了此代码?在您的代码中,我看不到任何创建
sPImg
labelStatus
的变量。为什么
ContactMe
实现
ActionListener
接口?如果你真的想这样做,你必须重写
actionPerformed
方法。最后两个方法很简单:你的类中没有任何名为
sPImg
labelStatus
的东西,所以它不知道你在说什么。要么定义类似的内容,要么删除有问题的代码行。第一种方法意味着如果您声称要实现
ActionListener
,则必须实现
actionPerformed
方法。由于您提供了一个作为匿名内部类的action listener,您可能只需删除类定义中的
实现ActionListener
。您使用匿名类满足ActionListener的需要,我认为实现
ActionListener
不是您想要的。一般来说,错误MSG准确地告诉您代码的错误:
actionPerformed
未实现,变量
sPImg
labelStatus
缺失。