0

Hi all,
I am getting Null pointer exception while getting other applet in the same page, can guide what i am doing wrong

here is demo code

// First applet
 
import java.applet.Applet;
public class Applet1 extends javax.swing.JApplet {
    
    Applet applet1 = null;
    public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        
        applet1 = getAppletContext().getApplet("App2");
        System.out.println("Oh at last i found"+applet1);
        
//        Enumeration allAppletsOnSamePage = getAppletContext().getApplets();
//        while(allAppletsOnSamePage.hasMoreElements()) {
//            System.out.println("Ohhhhhhh-- "+allAppletsOnSamePage.nextElement().toString());
//        }
    }
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jButton1 = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
 
        jButton1.setText("hi");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
 
        jLabel1.setText("jLabel1");
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(111, 111, 111)
                .addComponent(jButton1)
                .addContainerGap(248, Short.MAX_VALUE))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(187, Short.MAX_VALUE)
                .addComponent(jLabel1)
                .addGap(179, 179, 179))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(67, 67, 67)
                .addComponent(jButton1)
                .addGap(29, 29, 29)
                .addComponent(jLabel1)
                .addContainerGap(94, Short.MAX_VALUE))
        );
    }// </editor-fold>                        
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        if(applet1!=null){
            ((Applet2)applet1).setTextLabel("How are you");
        }
    }                                        
    
    
    // Variables declaration - do not modify                     
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    // End of variables declaration                   
    
}


// Second applet
import java.applet.Applet;
 
/**
 *
 * @author  dayananda.bv
 */
class Applet2 extends javax.swing.JApplet {
    
    /** Initializes the applet Applet1 */
    public void init() {
        try {
            java.awt.EventQueue.invokeAndWait(new Runnable() {
                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    
    public void setTextLabel(String text){
        jLabel1.setText(text);
    }
    /** This method is called from within the init() method to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
 
        jLabel1.setText("HI");
 
        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(80, 80, 80)
                .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 135, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(185, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(45, 45, 45)
                .addComponent(jLabel1)
                .addContainerGap(113, Short.MAX_VALUE))
        );
    }// </editor-fold>                        
        
    
    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    // End of variables declaration                   
    
}
//html code
<HTML>
<HEAD>
   <TITLE>Applet HTML Page</TITLE>
</HEAD>
<BODY>
<P>
<APPLET NAME="App1" codebase="classes" code="Applet1.class" width=350 height=200></APPLET>
</P>
 
<P>
<APPLET NAME="App2" codebase="classes" code="Applet2.class" width=350 height=200></APPLET>
</P>
</BODY>
</HTML>
2
Contributors
2
Replies
3
Views
8 Years
Discussion Span
Last Post by dayanandabv
0

At which line do you get the Exception? What does the console prints. Try adding try-catch with printstacktrace so you can provide us with more information

0

hi, thanks for quick replay.

At which line do you get the Exception? What does the console prints. Try adding try-catch with printstacktrace so you can provide us with more information

when i am getting applet2 object in the beging of the init method in Applet1, hope the Applet1 is loading first after that Applet2 is loading so that i am getting null pointer exception.

applet2 = getAppletContext().getApplet("App2");

can you tell me how can wait until the seconde applet(Applet2) should load after that only i need to load applet1.
hope you understood.

Thanks
Dayananda BV

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.