Search code examples
javaobjectapplet

Java can't find symbol


This is my error message

test.java:17: cannot find symbol
symbol  : class MouseAdapter
location: class test
        private class click extends MouseAdapter
                                    ^
test.java:19: cannot find symbol
symbol  : class MouseEvent
location: class test.click
                public void mouseEntered(MouseEvent e)
                                         ^
test.java:14: cannot find symbol
symbol  : variable trayicon
location: class test
        trayicon.addMouseListener(new click());
        ^
3 errors

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;

public class test extends JFrame
{

    private JFrame frame;

    public void init()
    {
        trayicon.addMouseListener(new click());
    }

        private class click extends MouseAdapter
        {
            public void mouseEntered(MouseEvent e)
            {
                {
                frame.setVisible(true);
            }
        }
    }
}

Solution

  • Reproducing the error:

    $cat >test.java <<. 
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    
    public class test extends JFrame
    {
    
        private JFrame frame;
    
        public void init()
        {
            trayicon.addMouseListener(new click());
        }
    
            private class click extends MouseAdapter
            {
                public void mouseEntered(MouseEvent e)
                {
                    {
                    frame.setVisible(true);
                }
            }
        }
    }
    .
    $javac test.java 
    test.java:15: cannot find symbol
    symbol  : class MouseAdapter
    location: class test
            private class click extends MouseAdapter
                                        ^
    test.java:17: cannot find symbol
    symbol  : class MouseEvent
    location: class test.click
                public void mouseEntered(MouseEvent e)
                                         ^
    test.java:12: cannot find symbol
    symbol  : variable trayicon
    location: class test
            trayicon.addMouseListener(new click());
            ^
    3 errors
    

    Adding the import

    $ed test.java 
    431
    1i
    import java.awt.event.*;
    .
    wq
    456
    $javac test.java 
    test.java:13: cannot find symbol
    symbol  : variable trayicon
    location: class test
            trayicon.addMouseListener(new click());
            ^
    1 error
    

    Declaring trayicon at line 13

    $ed test.java 
    456
    13i
            JLabel trayicon = new JLabel();// or something that makes sense
    .
    wq
    528
    $javac test.java 
    $
    

    Fixed!

    Resulting code:

    $cat test.java 
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    
    public class test extends JFrame
    {
    
        private JFrame frame;
    
        public void init()
        {
            JLabel trayicon = new JLabel();// or something that makes sense
            trayicon.addMouseListener(new click());
        }
    
            private class click extends MouseAdapter
            {
                public void mouseEntered(MouseEvent e)
                {
                    {
                    frame.setVisible(true);
                }
            }
        }
    }
    

    BTW, you don't need lines 26 and 21:

    $ed test.java 
    633
    26d
    21d
    wq
    605
    $javac test.java 
    $
    $cat test.java 
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.*;
    
    public class test extends JFrame
    {
    
        private JFrame frame;
    
        public void init()
        {
            JLabel trayicon = new JLabel();// or something that makes sense
            trayicon.addMouseListener(new click());
        }
    
            private class click extends MouseAdapter
            {
                public void mouseEntered(MouseEvent e)
                {
                    frame.setVisible(true);
                }
            }
        }