Re: Cardlayout Problem

Wade Chandler <[email protected]>
Newsgroups gmane.comp.java.netbeans.user-interface
Message-ID <[email protected]>
I have forwarded your question to nbusers. Please do
not use nbui for support type questions. It is for
discussion the actual user interface of the NetBeans
IDE and Platform. I don't have time to look at your
question in detail right now, but maybe someone there
will have time.

Wade

--- Blear <[email protected]> wrote:

> 
> I'm trying to get a card layout to work to display
> my multiple panels so that
> I can use it in a project I am working on. I have a
> JFrame and on that
> JFrame is a JPanel that will load the cards. I can
> get all of the cards that
> are within the same class to load fine. However I
> have quite a few panels
> that are very different and I don't want to stick it
> all into one class.
> Right now I can get the card (panel) from another
> class to load fine, but
> when I click its button to load another card that is
> where the program dies.
> I put a print statement in the function just to make
> sure the program is
> getting there and it is, but it just isn't loading
> the new panel. 
> 
> Here is my code for the frame where I can get
> everything to load fine:
> 
> 
> /*
>  
> package layout;
> 
> import javax.swing.*;
> import java.awt.*;
> 
> public class CardLayoutFrameTest extends
> javax.swing.JFrame {
>     
>     /** Creates new form CardLayoutFrameTest */
>     public CardLayoutFrameTest() {
>         initComponents();
>         initOtherClassComponents();        
>     }
>     
>     /** This method is called from within the
> constructor 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() {
>         LoaderPanel = new javax.swing.JPanel();
>         Card1Panel = new javax.swing.JPanel();
>         Card2Button = new javax.swing.JButton();
>         Card2Panel = new javax.swing.JPanel();
>         Card1Button = new javax.swing.JButton();
>         Card4Panel = new javax.swing.JPanel();
>         Change2Card1Button = new
> javax.swing.JButton();
>         Change2Card2Button = new
> javax.swing.JButton();
>  
>        
>
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
>         LoaderPanel.setLayout(new
> java.awt.CardLayout());
>  
>         LoaderPanel.setBackground(new
> java.awt.Color(255, 255, 204));
>         LoaderPanel.setMaximumSize(new
> java.awt.Dimension(400, 225));
>         LoaderPanel.setMinimumSize(new
> java.awt.Dimension(400, 225));
>         LoaderPanel.setPreferredSize(new
> java.awt.Dimension(400, 225));
>         Card1Panel.setBackground(new
> java.awt.Color(153, 0, 0));
>         Card2Button.setText("Go to Card2");
>         Card2Button.addActionListener(new
> java.awt.event.ActionListener() {
>             public void
> actionPerformed(java.awt.event.ActionEvent evt) {
>                 Card2ButtonActionPerformed(evt);
>             }
>         });
>  
>         org.jdesktop.layout.GroupLayout
> Card1PanelLayout = new
> org.jdesktop.layout.GroupLayout(Card1Panel);
>         Card1Panel.setLayout(Card1PanelLayout);
>         Card1PanelLayout.setHorizontalGroup(
>            
>
Card1PanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>            
> .add(Card1PanelLayout.createSequentialGroup()
>                 .add(187, 187, 187)
>                 .add(Card2Button)
>                 .addContainerGap(168,
> Short.MAX_VALUE))
>         );
>         Card1PanelLayout.setVerticalGroup(
>            
>
Card1PanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>            
> .add(org.jdesktop.layout.GroupLayout.TRAILING,
> Card1PanelLayout.createSequentialGroup()
>                 .addContainerGap(167,
> Short.MAX_VALUE)
>                 .add(Card2Button)
>                 .add(128, 128, 128))
>         );
>         LoaderPanel.add(Card1Panel, "card1");
>  
>         Card2Panel.setBackground(new
> java.awt.Color(0, 204, 204));
>         Card1Button.setText("Go to Card4");
>         Card1Button.addActionListener(new
> java.awt.event.ActionListener() {
>             public void
> actionPerformed(java.awt.event.ActionEvent evt) {
>                 Card1ButtonActionPerformed(evt);
>             }
>         });
>  
>         org.jdesktop.layout.GroupLayout
> Card2PanelLayout = new
> org.jdesktop.layout.GroupLayout(Card2Panel);
>         Card2Panel.setLayout(Card2PanelLayout);
>         Card2PanelLayout.setHorizontalGroup(
>            
>
Card2PanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>            
> .add(Card2PanelLayout.createSequentialGroup()
>                 .add(30, 30, 30)
>                 .add(Card1Button)
>                 .addContainerGap(325,
> Short.MAX_VALUE))
>         );
>         Card2PanelLayout.setVerticalGroup(
>            
>
Card2PanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>            
> .add(Card2PanelLayout.createSequentialGroup()
>                 .add(30, 30, 30)
>                 .add(Card1Button)
>                 .addContainerGap(265,
> Short.MAX_VALUE))
>         );
>         LoaderPanel.add(Card2Panel, "card2");
>  
>         Card4Panel.setBackground(new
> java.awt.Color(255, 153, 0));
>         Change2Card1Button.setText("Card3 in Other
> Class");
>         Change2Card1Button.addActionListener(new
> java.awt.event.ActionListener() {
>             public void
> actionPerformed(java.awt.event.ActionEvent evt) {
>                
> Change2Card1ButtonActionPerformed(evt);
>             }
>         });
>  
>         Change2Card2Button.setText("Card1");
>         Change2Card2Button.addActionListener(new
> java.awt.event.ActionListener() {
>             public void
> actionPerformed(java.awt.event.ActionEvent evt) {
>                
> Change2Card2ButtonActionPerformed(evt);
>             }
>         });
>  
>         org.jdesktop.layout.GroupLayout
> Card4PanelLayout = new
> org.jdesktop.layout.GroupLayout(Card4Panel);
>         Card4Panel.setLayout(Card4PanelLayout);
>         Card4PanelLayout.setHorizontalGroup(
>            
>
Card4PanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>            
> .add(Card4PanelLayout.createSequentialGroup()
>                 .add(74, 74, 74)
>                 .add(Change2Card1Button)
>                 .add(68, 68, 68)
>                 .add(Change2Card2Button)
>                 .addContainerGap(42,
> Short.MAX_VALUE))
>         );
>  
>         Card4PanelLayout.linkSize(new
> java.awt.Component[]
> {Change2Card1Button, Change2Card2Button},
> org.jdesktop.layout.GroupLayout.HORIZONTAL);
>  
>         Card4PanelLayout.setVerticalGroup(
>            
>
Card4PanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>            
> .add(Card4PanelLayout.createSequentialGroup()
>                 .add(62, 62, 62)
>                
>
.add(Card4PanelLayout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE)
>                     .add(Change2Card1Button)
>                     .add(Change2Card2Button))
>                 .addContainerGap(233,
> Short.MAX_VALUE))
>         );
>  
>         Card4PanelLayout.linkSize(new
> java.awt.Component[]
> {Change2Card1Button, Change2Card2Button},
> org.jdesktop.layout.GroupLayout.VERTICAL);
>  
>         LoaderPanel.add(Card4Panel, "2buttoncard");
>  
>         org.jdesktop.layout.GroupLayout layout = new
> org.jdesktop.layout.GroupLayout(getContentPane());
>         getContentPane().setLayout(layout);
>         layout.setHorizontalGroup(
>            
>
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>             .add(layout.createSequentialGroup()
>                 .add(58, 58, 58)
>                 .add(LoaderPanel,
> org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 446,
> org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
>                 .addContainerGap(61,
> Short.MAX_VALUE))
>         );
>         layout.setVerticalGroup(
>            
>
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>             .add(layout.createSequentialGroup()
>                 .add(34, 34, 34)
>                 .add(LoaderPanel,
> org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 318,
> org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
>                 .addContainerGap(42,
> Short.MAX_VALUE))
>         );
>         java.awt.Dimension screenSize =
>
java.awt.Toolkit.getDefaultToolkit().getScreenSize();
>         setBounds((screenSize.width-573)/2,
> (screenSize.height-428)/2, 573,
> 428);
>     }// </editor-fold>
>  
>     private void
>
Change2Card2ButtonActionPerformed(java.awt.event.ActionEvent
> evt) {
>         //Go to Card1
>         CardLayout cl =
> (CardLayout)(LoaderPanel.getLayout());
>         cl.show(LoaderPanel, "card1");
>     }
>  
>     private void
>
Change2Card1ButtonActionPerformed(java.awt.event.ActionEvent
> evt) {
>         //Go to Card3 in another class
>         CardLayout cl =
> (CardLayout)(LoaderPanel.getLayout());
>         cl.show(LoaderPanel, "anotherclass");
>     }
>  
>     private void initOtherClassComponents()
>     {
>         LoaderPanel.add(myDifClassCard,
> "anotherclass");
>     }
>     
>     private void
>
Card1ButtonActionPerformed(java.awt.event.ActionEvent
> evt)
> {                                            
>         //Go to Card4
>         CardLayout cl =
> (CardLayout)(LoaderPanel.getLayout());
>         cl.show(LoaderPanel, "2buttoncard");
>         //CardLoad();
>     }                                           
>  
>     private void
>
Card2ButtonActionPerformed(java.awt.event.ActionEvent
> evt)
> {                                            
>         //Go to Card2
>         CardLayout cl =
> (CardLayout)(LoaderPanel.getLayout());
>         cl.show(LoaderPanel, "card2"); 
>     }                                           
>     
>     public void CardLoad()
>     {
>         //Load Card4 from another class
>         System.out.println("Program Flow Passed");
>         CardLayout cl =
> (CardLayout)(LoaderPanel.getLayout());
>         cl.show(LoaderPanel, "2buttoncard");
>     }
>     /**
>      * @param args the command line arguments
>      */
>     public static void main(String args[]) {
>         java.awt.EventQueue.invokeLater(new
> Runnable() {
>             public void run() {
>                new
> CardLayoutFrameTest().setVisible(true);             
>   
>             }
>         });
>     }
>     
>     // Variables declaration - do not modify
>     private javax.swing.JButton Card1Button;
>     private javax.swing.JPanel Card1Panel;
>     private javax.swing.JButton Card2Button;
>     private javax.swing.JPanel Card2Panel;
>     private javax.swing.JPanel Card4Panel;
>     private javax.swing.JButton Change2Card1Button;
>     private javax.swing.JButton Change2Card2Button;
>     private javax.swing.JPanel LoaderPanel;
>     // End of variables declaration
>     
>     DifClassCard myDifClassCard = new
> DifClassCard();
> }//End CardLayoutFrameTest
> 
> 
> 
> Here is my code for the other class that I can get
> to load, but can't get
> anything to load when I push its button:
> 
> 
> package layout;
>  
> import javax.swing.*;
> import java.awt.*;
>  
> public class DifClassCard extends javax.swing.JPanel
> {
>     
>     /** Creates new form DifClassCard */
>     public DifClassCard() {
>         initComponents();
>     }
>     
>     /** This method is called from within the
> constructor 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() {
>         DescriptionLabel = new javax.swing.JLabel();
>         OtherClassButton = new
> javax.swing.JButton();
>  
>         setBackground(new java.awt.Color(153, 255,
> 153));
>         setMaximumSize(new java.awt.Dimension(400,
> 225));
>         setMinimumSize(new java.awt.Dimension(400,
> 225));
>         setPreferredSize(new java.awt.Dimension(400,
> 225));
>         DescriptionLabel.setText("Card from another
> class");
>  
>         OtherClassButton.setText("Go to Card1 in
> another class");
>         OtherClassButton.addActionListener(new
> java.awt.event.ActionListener() {
>             public void
> actionPerformed(java.awt.event.ActionEvent evt) {
>                
> OtherClassButtonActionPerformed(evt);
>             }
>         });
>  
>         org.jdesktop.layout.GroupLayout layout = new
> org.jdesktop.layout.GroupLayout(this);
>         this.setLayout(layout);
>         layout.setHorizontalGroup(
>            
>
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>             .add(layout.createSequentialGroup()
>                
>
.add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>                    
> .add(layout.createSequentialGroup()
>                         .add(130, 130, 130)
>                         .add(DescriptionLabel))
>                    
> .add(layout.createSequentialGroup()
>                         .add(104, 104, 104)
>                         .add(OtherClassButton)))
>                 .addContainerGap(127,
> Short.MAX_VALUE))
>         );
>         layout.setVerticalGroup(
>            
>
layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
>             .add(layout.createSequentialGroup()
>                 .add(47, 47, 47)
>                 .add(DescriptionLabel)
>                 .add(30, 30, 30)
>                 .add(OtherClassButton)
>                 .addContainerGap(111,
> Short.MAX_VALUE))
>         );
>     }// </editor-fold>
>  
>     private void
>
OtherClassButtonActionPerformed(java.awt.event.ActionEvent
> evt) {                                              
>   
>         //Go to a card in another class
>         //Go to Card1
>         CardLayoutFrameTest myMainCard = new
> CardLayoutFrameTest();
>         myMainCard.CardLoad();
>     }                                               
> 
>     
>     
>     // Variables declaration - do not modify
>     private javax.swing.JLabel DescriptionLabel;
>     private javax.swing.JButton OtherClassButton;
>     // End of variables declaration
>     
> }//End DifClassCard
> 
> 
> 
> Hopefully that isn't too confusing, thanks for any
> suggestions in advance.
> -- 
> View this message in context:
>
http://www.nabble.com/Cardlayout-Problem-tf3952032.html#a11212236
> Sent from the Netbeans - UI mailing list archive at
> Nabble.com.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.