Advertisement
Guest User

Slow component removal

a guest
Jun 1st, 2012
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.81 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.GridBagConstraints;
  3. import java.awt.GridBagLayout;
  4. import java.awt.event.ActionEvent;
  5.  
  6. import javax.swing.AbstractAction;
  7. import javax.swing.JApplet;
  8. import javax.swing.JButton;
  9. import javax.swing.JLabel;
  10. import javax.swing.JPanel;
  11.  
  12.  
  13. public class SSCCE extends JApplet {
  14.     private boolean state;
  15.  
  16.     public void init() {
  17.         super.init();
  18.         getContentPane().add(setupSwitchPanel(), BorderLayout.NORTH);
  19.         getContentPane().add(setupSimplePanel(), BorderLayout.CENTER);
  20.     }
  21.  
  22.     private JPanel setupSwitchPanel() {
  23.         JPanel switchPanel = new JPanel();
  24.         switchPanel.add(new JButton(new AbstractAction("Switch panels (slow)") {
  25.             @Override
  26.             public void actionPerformed(ActionEvent arg0) {
  27.                 switchComponents();
  28.             }
  29.         }));
  30.        
  31.         switchPanel.add(new JButton(new AbstractAction("Switch panels (fast)") {
  32.             @Override
  33.             public void actionPerformed(ActionEvent arg0) {
  34.                 ((JPanel)getContentPane().getComponent(1)).removeAll();
  35.                 switchComponents();
  36.             }
  37.         }));
  38.         return switchPanel;
  39.     }
  40.    
  41.     private void switchComponents() {
  42.         getContentPane().remove(1);
  43.         if (state)
  44.             getContentPane().add(setupSimplePanel(), BorderLayout.CENTER);
  45.         else
  46.             getContentPane().add(setupComplexPanel(), BorderLayout.CENTER);
  47.         state = !state;
  48.         getContentPane().validate();
  49.     }
  50.    
  51.     private JPanel setupComplexPanel() {
  52.         JPanel contents = new JPanel();
  53.         contents.setLayout(new GridBagLayout());
  54.         GridBagConstraints c = new GridBagConstraints();
  55.         for (int x = 0; x<10; x++) {
  56.             c.gridx = x;
  57.             for (int y = 0; y<10; y++) {
  58.                 c.gridy = y;
  59.                 contents.add(new JLabel(x + ", " + y), c);
  60.             }
  61.         }
  62.         return contents;
  63.     }
  64.    
  65.     private JPanel setupSimplePanel() {
  66.         JPanel contents = new JPanel();
  67.         contents.add(new JLabel("Simple view"));
  68.         return contents;
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement