Loosing scrollers (vert and horz) when JScrollPane is append into a JPanel, works on JFrame

27 views
Skip to first unread message

eric barns

unread,
Apr 22, 2013, 10:37:14 AM4/22/13
to aswing-...@googlegroups.com
Can you help, tried to amend lunar examples to accept scrolling pics and a main display area,only  i can get it to work if i append list direct to JFrame, no panel or borders!!

package
{
import flash.display.Sprite;
    import flash.events.Event;
    import org.aswing.*;
    import org.aswing.JPanel;
    import org.aswing.JComboBox;
    import org.aswing.JLabel;
    import org.aswing.JFrame;
    import org.aswing.FlowLayout;
    import org.aswing.border.BevelBorder;
    import org.aswing.Insets;
    import org.aswing.border.EmptyBorder;
    import org.aswing.border.TitledBorder;
    import org.aswing.SoftBoxLayout;
    import org.aswing.LoadIcon;
    import org.aswing.BorderLayout;
    import org.aswing.geom.IntDimension;
    import org.aswing.VectorListModel;
    import org.aswing.JList;
    import org.aswing.JScrollPane;
    import org.aswing.GeneralListCellFactory;
   
   
    public class LunarPhases extends Sprite
    {
        private static var NUM_IMAGES : int =11;
        private static var START_INDEX : int = 1;
       
        private var images : Array ;
        private var selectPanel : JPanel;
        private var displayPanel : JPanel;
        private var scrollPane: JScrollPane
     
        private var phaseIconLabel : JLabel;
        private var model:VectorListModel;
        private var list:JList;


        public function LunarPhases(){
            super();
            createUI();
        }
       
        private function createUI() : void{
            var frame : JFrame = new JFrame( this, "Lunar Phases" );
            frame.setContentPane( createCenterPane() );
            frame.pack();
            frame.setSize(new IntDimension( 1024, 768 ) );
            frame.show();
        }
       
        private function createCenterPane() : JPanel{
            images = new Array(NUM_IMAGES);
            for (var i:int = 0; i < NUM_IMAGES; i++) {
                images[i] = new LoadIcon("images/image" + i + ".jpg", 840,630,true);
            }
           
            //Create the phase selection and display panels.
            selectPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
            selectPanel.setPreferredSize(new IntDimension(160,600));
           
            displayPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
           
            phaseIconLabel = new JLabel("");
     // phaseIconLabel.setBorder(new BevelBorder(new EmptyBorder(null, new Insets(2,2,2,2))));

            model = new VectorListModel();    
            for(var k:int=1; k<11; k++){
                model.append( new JListExample2Value("images/image" +k+ ".jpg" , "image " + k));
            }
           
            //list = new JList(model,new GeneralListCellFactory( LoadImageListCell, true,true,128));
            list = new JList(model,new GeneralListCellFactory( LoadImageListCell, false,true,128));
            list.setVisibleCellWidth(128);
            list.setVisibleRowCount(5);

            //Display the first image.
            phaseIconLabel.setIcon(images[START_INDEX]);
           
            //Add a border around the select panel.
            selectPanel.setBorder(new EmptyBorder(new TitledBorder(null, "Select Phase"), new Insets(2, 2, 2, 2)));
           
            //Add a border around the display panel.
            displayPanel.setBorder(new EmptyBorder(new TitledBorder(null, "Display Phase"), new Insets(2, 2, 2, 2)));


         //Add moon phases combo box to select panel and image label.
         displayPanel.append(phaseIconLabel);
         selectPanel.append(list);
           
            //Create the main panel to contain the two sub panels.
            var mainPanel : JPanel = new JPanel(new SoftBoxLayout());
            mainPanel.setBorder(new EmptyBorder(null, new Insets(2,2,2,2)));
           
            //Add the select and display panels to the main panel.           
            mainPanel.append(displayPanel);
            mainPanel.append(selectPanel);
           
            initHandlers();
            return mainPanel;
        }
       
        private function initHandlers() : void{
            list.addSelectionListener(__selectPhase);
        }
       
        private function __selectPhase( e : Event ) : void{
            phaseIconLabel.setIcon(images[list.getSelectedIndex()+1]);
            phaseIconLabel.revalidate();
            var li : LoadIcon = phaseIconLabel.getIcon() as LoadIcon;
            trace(phaseIconLabel.getSize()+" "+li.getIconHeight(phaseIconLabel)+" "+li.getIconWidth(phaseIconLabel));
        }
    }
}
LunarPhases.as

white skill

unread,
Sep 27, 2013, 5:50:48 AM9/27/13
to aswing-...@googlegroups.com
check size when frame.pack() or any fit moment .
Reply all
Reply to author
Forward
0 new messages