Results 1 to 3 of 3
  1. #1
    Join Date
    Jul 2007
    Posts
    13
    Rep Power
    0

    Default Using previous with CardLayout

    I'm still having trouble with CardLayout. I want to make a basic wizard GUI, but I can't make actionListeners deliver any of the special CardLayout methods ie previous, first, next, show. Here's the code. Is there someone patient out there can tell me where I'm going wrong?

    Java Code:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class CardLayoutDemo {
        JPanel cards; //a panel that uses CardLayout
        final static String BUTTONPANEL = "Card with JButtons";
        final static String TEXTPANEL = "Card with JTextField";
        
        public void addComponentToPane(Container pane) {
            
            //Create the "cards".
            JPanel card1 = new JPanel();
            JButton Back = new JButton("Back");
            JButton Next = new JButton("Next");
            JButton Cancel = new JButton("Cancel");
            card1.add(Back);
            card1.add(Next);
            card1.add(Cancel);
            
            
            JPanel card2 = new JPanel();
            card2.add(new JTextField("TextField", 20));
            
            //Create the panel that contains the "cards".
            cards = new JPanel(new CardLayout());
            cards.add(card1, BUTTONPANEL);
            cards.add(card2, TEXTPANEL);
            
            pane.add(cards, BorderLayout.CENTER);
        }
        
       
       
        /**
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event dispatch thread.
         */
        private static void createAndShowGUI() {
            //Create and set up the window.
            JFrame frame = new JFrame("CardLayoutDemo");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            //Create and set up the content pane.
            CardLayoutDemo demo = new CardLayoutDemo();
            demo.addComponentToPane(frame.getContentPane());
            
            //Display the window.
            frame.pack();
            frame.setVisible(true);
        }
        
        public void actionPerformed(ActionEvent e){
            if (e.getActionCommand().equals("Back")){
               previous(cards);
            }
            
              if (e.getActionCommand().equals("Next")){
              //action code  
            }
            
              if (e.getActionCommand().equals("Cancel")){
              //action code  
            }
        }
        
      
         
         
        public static void main(String[] args) {
            /* Use an appropriate Look and Feel */
            try {
                //UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
            } catch (UnsupportedLookAndFeelException ex) {
                ex.printStackTrace();
            } catch (IllegalAccessException ex) {
                ex.printStackTrace();
            } catch (InstantiationException ex) {
                ex.printStackTrace();
            } catch (ClassNotFoundException ex) {
                ex.printStackTrace();
            }
            /* Turn off metal's use of bold fonts */
            UIManager.put("swing.boldMetal", Boolean.FALSE);
            
            //Schedule a job for the event dispatch thread:
            //creating and showing this application's GUI.
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
                }
            });
        }
    }

  2. #2
    hardwired's Avatar
    hardwired is offline Senior Member
    Join Date
    Jul 2007
    Posts
    1,576
    Rep Power
    9

    Default

    Java Code:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    public class CLD implements ActionListener {
        JPanel cards; //a panel that uses CardLayout
        final static String BUTTONPANEL = "Card with JButtons";
        final static String TEXTPANEL = "Card with JTextField";
        
        public void addComponentToPane(Container pane) {
    
            // Create control panel.
            JButton Back = new JButton("Back");
            Back.setActionCommand("Back");
            JButton Next = new JButton("Next");
            Next.setActionCommand("Next");
            JButton Cancel = new JButton("Cancel");
            Cancel.setActionCommand("Cancel");
            // Add listeners.
            Back.addActionListener(this);
            Next.addActionListener(this);
            Cancel.addActionListener(this);
            JPanel north = new JPanel();
            north.add(Back);
            north.add(Next);
            north.add(Cancel);
    
            // Create the "cards".
            JPanel card1 = new JPanel(new BorderLayout());
            card1.setBackground(Color.red);
            card1.add(new JLabel("Card 1", JLabel.CENTER));
            JPanel card2 = new JPanel();
            card2.add(new JTextField("TextField", 20));
            JPanel card3 = new JPanel(new BorderLayout());
            card3.setBackground(Color.yellow);
            card3.add(new JLabel("Card 3", JLabel.CENTER));
            // Instantiate the panel that contains the "cards".
            cards = new JPanel(new CardLayout());
            cards.add("Card 1",  card1);
            cards.add(TEXTPANEL, card2);
            cards.add("yellow",  card3);
     
            // Layout components in frame.
            pane.add(north, BorderLayout.PAGE_START);
            pane.add(cards, BorderLayout.CENTER);
        }
       
        /**
         * Create the GUI and show it.  For thread safety,
         * this method should be invoked from the
         * event dispatch thread.
         */
        private static void createAndShowGUI() {
            //Create and set up the window.
            JFrame frame = new JFrame("CardLayoutDemo");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            //Create and set up the content pane.
            CLD demo = new CLD();
            demo.addComponentToPane(frame.getContentPane());
            
            //Display the window.
            frame.pack();
            frame.setVisible(true);
        }
        
        public void actionPerformed(ActionEvent e){
            // Get a reference to the CardLayout.
            CardLayout cardLayout = (CardLayout)cards.getLayout();
            if (e.getActionCommand().equals("Back")){
                cardLayout.previous(cards);
            }
    
            if (e.getActionCommand().equals("Next")){
                cardLayout.next(cards);
            }
    
            if (e.getActionCommand().equals("Cancel")){
                //action code  
            }
        }
    
        public static void main(String[] args) {
            /* Use an appropriate Look and Feel */
            try {
                //UIManager.setLookAndFeel(
                //    "com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
            } catch (UnsupportedLookAndFeelException ex) {
                ex.printStackTrace();
            } catch (IllegalAccessException ex) {
                ex.printStackTrace();
            } catch (InstantiationException ex) {
                ex.printStackTrace();
            } catch (ClassNotFoundException ex) {
                ex.printStackTrace();
            }
            /* Turn off metal's use of bold fonts */
            UIManager.put("swing.boldMetal", Boolean.FALSE);
            
            //Schedule a job for the event dispatch thread:
            //creating and showing this application's GUI.
            javax.swing.SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
                }
            });
        }
    }

  3. #3
    Join Date
    Jul 2007
    Posts
    13
    Rep Power
    0

Similar Threads

  1. Replies: 2
    Last Post: 08-10-2007, 12:36 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •