Link to home
Start Free TrialLog in
Avatar of DanFlyBoy
DanFlyBoy

asked on

Unable to get JTable to display in applet

I wrote a applet with Jtable, but when I run,  JTable does not apper.  I have attached code.

import javax.swing.JApplet;
import javax.swing.JFrame;

import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.AbstractTableModel;

/*
 * Created on Apr 5, 2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 *
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class RSWPLAN extends JApplet {

      private javax.swing.JPanel jContentPane = null;

      private JFrame jFrame = null;  //  @jve:decl-index=0:visual-constraint="13,9"
      private JTable jTable = null;
      private JScrollPane scrollPane = null;
      /**
       * This is the default constructor
       */
      public RSWPLAN() {
            super();
            init();
      }
      /**
       * This method initializes this
       *
       * @return void
       */
      public void init() {
            this.setSize(1000,700);
            this.setContentPane(getJContentPane());
      }
      
      /**
       * This method initializes jContentPane
       *
       * @return javax.swing.JPanel
       */
      public javax.swing.JPanel getJContentPane() {
            if(jContentPane == null) {
                  jContentPane = new javax.swing.JPanel();
                  jContentPane.setLayout(new java.awt.BorderLayout());
                  
            }
            
            return jContentPane;
      }
      /**
       * This method initializes jFrame      
       *       
       * @return javax.swing.JFrame      
       */    
      //private JFrame getJFrame() {
      ///      if (jFrame == null) {
      //            jFrame = new JFrame();
      //            jFrame.setContentPane(new JPanel());
      //            jFrame.setSize(494, 364);
      //            jFrame.setTitle("jFrame");
      //      }
      //      return jFrame;
      //}
      /**
       * This method initializes jTable      
       *       
       * @return javax.swing.JTable      
       */
      JTable table = new JTable(new MyTableModel());
   // table.setPreferredScrollableViewportSize(new Dimension(1000, 700));
      public JTable getJTable() {
            if (jTable == null) {
                  JTable table = new JTable(new MyTableModel());
                  //jTable = new JTable();
            }
            
            return jTable;
            
//            Create the scroll pane and add the table to it.
      //      private JScrollPane ScrollPane = null;
     //   JScrollPane scrollPane = new JScrollPane(jTable);
      }
       class MyTableModel extends AbstractTableModel {
        private String[] columnNames = {"First Name",
                                        "Last Name",
                                        "Sport",
                                        "# of Years",
                                        "Vegetarian",
                                                            "Vegetarian"
                                                            };
        private Object[][] data = {
                {"Mary", "Campione",
                 "Snowboarding", new Integer(5), new Boolean(false), new Integer(6)},
                {"Alison", "Huml",
                 "Rowing", new Integer(3), new Boolean(true), new Integer(6)},
                {"Kathy", "Walrath",
                 "Knitting", new Integer(2), new Boolean(false), new Integer(6)},
                {"Sharon", "Zakhour",
                 "Speed reading", new Integer(5), new Boolean(true), new Integer(6)},
                {"Philip", "Milne",
                 "Pool", new Integer(5), new Boolean(false), new Integer(6)},
                 {"Philip", "Milne",
                    "Pool", new Integer(2), new Boolean(true), new Integer(6)},
                    {"Mary", "Campione",
                        "Snowboarding", new Integer(5), new Boolean(false), new Integer(6)},
                       {"Alison", "Huml",
                        "Rowing", new Integer(3), new Boolean(true), new Integer(6)},
                       {"Kathy", "Walrath",
                        "Knitting", new Integer(2), new Boolean(false), new Integer(6)},
                       {"Sharon", "Zakhour",
                        "Speed reading", new Integer(5), new Boolean(true), new Integer(6)},
                       {"Philip", "Milne",
                        "Pool", new Integer(5), new Boolean(false), new Integer(6)},
                        {"Philip", "Milne",
                           "Pool", new Integer(2), new Boolean(true), new Integer(6)}
            };

            public int getColumnCount() {
                return columnNames.length;
            }

            public int getRowCount() {
                return data.length;
            }

            public String getColumnName(int col) {
                return columnNames[col];
            }

            public Object getValueAt(int row, int col) {
                return data[row][col];
            }
            {
                  JScrollPane sp = new JScrollPane(jTable);
                  getJContentPane().add(sp);}
          //private static void createAndShowGUI() {
            //Make sure we have nice window decorations.
         //   JFrame.setDefaultLookAndFeelDecorated(true);

            //Create and set up the window.
        //    JFrame frame = new JFrame("TableDemo");
        //    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            //Create and set up the content pane.
         //   TableDemo newContentPane = new TableDemo();
         //   newContentPane.setOpaque(true); //content panes must be opaque
         //   frame.setContentPane(newContentPane);

            //Display the window.
          //  frame.pack();
         //   frame.setVisible(true);
       // }
  //  }
      /**
       * This method initializes jScrollPane      
       *       
       * @return javax.swing.JScrollPane      
       */    
      //private JScrollPane getJScrollPane() {
      //      if (jScrollPane == null) {
      //            jScrollPane = new JScrollPane();
      //            jScrollPane.setViewportView(getJTable());
                  //JScrollPane sp = new JScrollPane(jTable);
                  //getContentPane().add(sp);
      //      }
      //      JScrollPane sp = new JScrollPane(jTable);
      //      getJContentPane().add(sp);
      //      return jScrollPane;
      }
       private static void createAndShowGUI() {
        //Make sure we have nice window decorations.
        JFrame.setDefaultLookAndFeelDecorated(true);

        //Create and set up the window.
        JFrame frame = new JFrame("TableDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Create and set up the content pane.
        TableDemo newContentPane = new TableDemo();
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }
      }
Avatar of zzynx
zzynx
Flag of Belgium image

getJTable() is wrong
public JTable getJTable() {

          if (jTable == null) {
               JTable table = new JTable(new MyTableModel());  // <<<<<<< You create a temporary table, but don't initialize jTable
               //jTable = new JTable();
          }
         
          return jTable;
Afterwards you do:
>> JScrollPane sp = new JScrollPane(jTable);

Here jTable is still null
Try:

public JTable getJTable() {
          if (jTable == null)
               jTable = new JTable(new MyTableModel());
          return jTable;
}

combined with

 JScrollPane sp = new JScrollPane(getJTable());
Avatar of DanFlyBoy
DanFlyBoy

ASKER

Where do I need to initalize at?
Try my previous comment.
That initializes your table the first time
- you need it
- you call getJTable()
I tried that piece of code now applet does not run at all.
Can you post the complete code you have at the moment?
>> Can you post the complete code
without the commented stuff that doesn't need to be there (for clearness)
import javax.swing.JApplet;
import javax.swing.JFrame;

import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.table.AbstractTableModel;

/*
 * Created on Apr 5, 2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */

/**
 *
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class RSWPLAN extends JApplet {

      private javax.swing.JPanel jContentPane = null;

      private JFrame jFrame = null;  //  @jve:decl-index=0:visual-constraint="13,9"
      private JTable jTable = null;
      private JScrollPane scrollPane = null;
      /**
       * This is the default constructor
       */
      public RSWPLAN() {
            super();
            init();
      }
      /**
       * This method initializes this
       *
       * @return void
       */
      public void init() {
            this.setSize(1000,700);
            this.setContentPane(getJContentPane());
      }
      
      /**
       * This method initializes jContentPane
       *
       * @return javax.swing.JPanel
       */
      public javax.swing.JPanel getJContentPane() {
            if(jContentPane == null) {
                  jContentPane = new javax.swing.JPanel();
                  jContentPane.setLayout(new java.awt.BorderLayout());
                  
            }
            
            return jContentPane;
      }
      /**
       * This method initializes jFrame      
       *       
       * @return javax.swing.JFrame      
       */    
      //private JFrame getJFrame() {
      ///      if (jFrame == null) {
      //            jFrame = new JFrame();
      //            jFrame.setContentPane(new JPanel());
      //            jFrame.setSize(494, 364);
      //            jFrame.setTitle("jFrame");
      //      }
      //      return jFrame;
      //}
      /**
       * This method initializes jTable      
       *       
       * @return javax.swing.JTable      
       */
      JTable table = new JTable(new MyTableModel());
   // table.setPreferredScrollableViewportSize(new Dimension(1000, 700));
      public JTable getJTable() {
            if (jTable == null) {
                  JTable table = new JTable(new MyTableModel());
                  JScrollPane sp = new JScrollPane(getJTable());
      //            //jTable = new JTable();
                  
            }
            return jTable;      
            
            
            
//            Create the scroll pane and add the table to it.
      //      private JScrollPane ScrollPane = null;
     //   JScrollPane scrollPane = new JScrollPane(jTable);
      }
       class MyTableModel extends AbstractTableModel {
        private String[] columnNames = {"First Name",
                                        "Last Name",
                                        "Sport",
                                        "# of Years",
                                        "Vegetarian",
                                                            "Vegetarian"
                                                            };
        private Object[][] data = {
                {"Mary", "Campione",
                 "Snowboarding", new Integer(5), new Boolean(false), new Integer(6)},
                {"Alison", "Huml",
                 "Rowing", new Integer(3), new Boolean(true), new Integer(6)},
                {"Kathy", "Walrath",
                 "Knitting", new Integer(2), new Boolean(false), new Integer(6)},
                {"Sharon", "Zakhour",
                 "Speed reading", new Integer(5), new Boolean(true), new Integer(6)},
                {"Philip", "Milne",
                 "Pool", new Integer(5), new Boolean(false), new Integer(6)},
                 {"Philip", "Milne",
                    "Pool", new Integer(2), new Boolean(true), new Integer(6)},
                    {"Mary", "Campione",
                        "Snowboarding", new Integer(5), new Boolean(false), new Integer(6)},
                       {"Alison", "Huml",
                        "Rowing", new Integer(3), new Boolean(true), new Integer(6)},
                       {"Kathy", "Walrath",
                        "Knitting", new Integer(2), new Boolean(false), new Integer(6)},
                       {"Sharon", "Zakhour",
                        "Speed reading", new Integer(5), new Boolean(true), new Integer(6)},
                       {"Philip", "Milne",
                        "Pool", new Integer(5), new Boolean(false), new Integer(6)},
                        {"Philip", "Milne",
                           "Pool", new Integer(2), new Boolean(true), new Integer(6)}
            };

            public int getColumnCount() {
                return columnNames.length;
            }

            public int getRowCount() {
                return data.length;
            }

            public String getColumnName(int col) {
                return columnNames[col];
            }

            public Object getValueAt(int row, int col) {
                return data[row][col];
            }
           
                  
          //private static void createAndShowGUI() {
            //Make sure we have nice window decorations.
         //   JFrame.setDefaultLookAndFeelDecorated(true);

            //Create and set up the window.
        //    JFrame frame = new JFrame("TableDemo");
        //    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            //Create and set up the content pane.
         //   TableDemo newContentPane = new TableDemo();
         //   newContentPane.setOpaque(true); //content panes must be opaque
         //   frame.setContentPane(newContentPane);

            //Display the window.
          //  frame.pack();
         //   frame.setVisible(true);
       // }
  //  }
      /**
       * This method initializes jScrollPane      
       *       
       * @return javax.swing.JScrollPane      
       */    
      //private JScrollPane getJScrollPane() {
      //      if (jScrollPane == null) {
      //            jScrollPane = new JScrollPane();
      //            jScrollPane.setViewportView(getJTable());
                  //JScrollPane sp = new JScrollPane(jTable);
                  //getContentPane().add(sp);
      //      }
      //      JScrollPane sp = new JScrollPane(jTable);
      //      getJContentPane().add(sp);
      //      return jScrollPane;
      }
      // private static void createAndShowGUI() {
        //Make sure we have nice window decorations.
    //    JFrame.setDefaultLookAndFeelDecorated(true);

        //Create and set up the window.
    //    JFrame frame = new JFrame("TableDemo");
    //    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Create and set up the content pane.
    //    TableDemo newContentPane = new TableDemo();
    //    newContentPane.setOpaque(true); //content panes must be opaque
    //    frame.setContentPane(newContentPane);

        //Display the window.
    //   frame.pack();
     //   frame.setVisible(true);
    }
      
ASKER CERTIFIED SOLUTION
Avatar of zzynx
zzynx
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I have tp go offline. Success.
Wow you are good!!!!
Thanks for accepting