non static variable cannot be referenced from a static context

前端 未结 5 980
伪装坚强ぢ
伪装坚强ぢ 2021-01-29 05:31

I am a Java newbie, so please bear with me and help.

I aim to first play then record sound.

I use netbeans IDE 6.8. Here is the code:

import java         


        
5条回答
  •  孤独总比滥情好
    2021-01-29 06:05

    The captureAudio() is not declared static thus it is an instance method and it cannot be called without an object in main() which is static.

    Sine I see you have createed in the run methid new instance of Reg1 thus it is fine then to call the method captureAudio() for this object. Plus there is no need for the inner private void Reg1() method which BTW you were never calling. I propose that you change main to something like this.

        public static void main(String args[])
        {
            java.awt.EventQueue.invokeLater(new Runnable()
            {
                public void run()
                {
                    Reg1 reg1 = new Reg1();
                    KeyListener s;    
                    try
                    {
                        AudioInputStream audio = AudioSystem.getAudioInputStream(new File("name.wav"));
                        Clip clip = AudioSystem.getClip();
                        clip.open(audio);
                        clip.start();
                    }catch(UnsupportedAudioFileException uae)
                    {
                        System.out.println(uae);
                    }catch(IOException ioe)
                    {
                        System.out.println(ioe);
                    }catch(LineUnavailableException lua)
                    {
                        System.out.println(lua);
                    }
                    reg1.captureAudio();
                }
            });
        }
    

提交回复
热议问题