|
|
|||||
Регистрация: Mar 2009
Сообщений: 7
|
Проблемы с AsWing
Возникла проблема, надеюсь кто-нибудь подскажет.
И так, создаю приложение на as3 и импортирую либы aswing. Создаю JPanel, JTabbedPane, JScrollPane, AssetPane. В AssetPane вставляю Sprite, который далее будет использоваться как контейнер для объектов (как лист в книге Excel) Если помните как в екселе есть ярлычки для каждого листа снизу.. Делаю тоже самое. Далее AssetPane добавляю в JScrollPane. А его в свою очередь добавляю на TabbedPane. Появляются скролбары. Все работает.. Но далее если я меняю размеры спрайта, скролбары не обновляются. Перепробовал почти всё что нашел в интернете про swing. Но ничего не помогло. Привожу код (метод-конструктор): var panel_top:JPanel = new JPanel(); panel_top.setLayout(new BoxLayout (BoxLayout.Y_AXIS, 10) ); var tabbedPane:JTabbedPane = new JTabbedPane(); tabbedPane.setTabPlacement(JTabbedPane.BOTTOM); ////создаю спрайт-контейнер, который будет изменяться в размерах var b:Sprite = new Sprite(); var gb:Graphics = b.graphics; gb.beginFill(0x333333); gb.drawRect(0,0,1800,1000); gb.endFill(); ////панелька, в которую будет добавлен спрайт var assetPane:AssetPane = new AssetPane(b); /////скрол бары var scrPane:JScrollPane = new JScrollPane(); scrPane.setViewportView(assetPane); /////использовал даже var scrPane:JScrollPane = new JScrollPane(assetPane); ////результат тот же /////тут меняю цвет и бордеры scrPane.setBorder(null); scrPane.setBackgroundDecorator(new SolidBackground(new ASColor(0x333333))); tabbedPane.setBackgroundDecorator(new SolidBackground(UIManager.getColor("window"))); //////добавляю скрол-бар панельку в закладку tabbedPane.appendTab(scrPane,"Лист 1"); /////добавляю все это на главную панель panel_top.append(tabbedPane); panel_top.setSizeWH(1000, 700); ////размер меньше чем спрайт, чтобы скролить addChild(panel_top); ///выполняю как предписано panel_top.validate(); trace("width= ",b.width); //1800 /////меняю содержимое спрайта gb.clear(); gb.beginFill(0xFF00FF); gb.drawRect(150,150,200,200); ///квадратик 200 на 200 gb.endFill(); trace("width= ",b.width); //200 /////тут навсякий случай меняю размеры AssetPane (потому что заметил что его размеры не менялись) assetPane.setSizeWH(b.width,b.height); trace(assetPane.getSize()); ///width = 200 height = 200 Последний раз редактировалось wvxvw; 05.01.2010 в 20:49. |
|
|||||
Регистрация: Jun 2009
Адрес: Нерезиновая
Сообщений: 23
|
После каждого изменения размера /расположения надо юзать методы validate() менеджеров родительских компонентов
Последний раз редактировалось DCH; 16.09.2011 в 17:32. |
Часовой пояс GMT +4, время: 13:43. |
|
« Предыдущая тема | Следующая тема » |
Теги |
AssetPane , aswing , JScrollPane , swing |
|
|