============範例展示=================================================
============範例展示=================================================
<!--ui.bxml--> <myex:ListButtons title="List Buttons" maximized="true" xmlns:bxml="http://pivot.apache.org/bxml" xmlns:myex="myex" xmlns="org.apache.pivot.wtk"> <TablePane styles="{showHorizontalGridLines: true, showVerticalGridLines:true, horizontalSpacing:1, verticalSpacing:1}"> <columns> <TablePane.Column width="-1"/> <TablePane.Column width="1*"/> </columns> <TablePane.Row height="340"> <BoxPane orientation="vertical" styles="{verticalAlignment:'top', padding: 4}"> <Label text="圖片:"/> <ListButton bxml:id="listButton" listData="['IMG_0725_2.jpg', 'IMG_0735_2.jpg', 'IMG_0767_2.jpg', 'IMG_1147.jpg']"/> </BoxPane> <ImageView bxml:id="imageView" styles="{backgroundColor:'#404040'}"/> </TablePane.Row> </TablePane> </myex:ListButtons>
接下來則是myex#ListButtons.java。
//ListButtons.java package myex; import java.net.URL; import org.apache.pivot.beans.Bindable; import org.apache.pivot.collections.Map; import org.apache.pivot.util.Resources; import org.apache.pivot.util.concurrent.TaskExecutionException; import org.apache.pivot.wtk.*; import org.apache.pivot.wtk.media.Image; public class ListButtons extends Window implements Bindable { private ListButton listButton = null; private ImageView imageView = null; @Override public void initialize(Map<String, Object> namespace, URL location, Resources resources) { listButton = (ListButton)namespace.get("listButton"); imageView = (ImageView)namespace.get("imageView"); //實作ListButtonSelection事件處理機制 listButton.getListButtonSelectionListeners().add(new ListButtonSelectionListener.Adapter() { @Override public void selectedItemChanged(ListButton listButton, Object previousSelectedItem) { Object selectedItem = listButton.getSelectedItem(); if (selectedItem != null) { //使用ClassLoader載入相關資源 ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); URL imageURL = classLoader.getResource("myex/" + selectedItem); //如果圖片尚未加入快取,就加入ResourceCache中 Image image = (Image)ApplicationContext.getResourceCache().get(imageURL); if (image == null) { try { image = Image.load(imageURL); } catch (TaskExecutionException exception) { throw new RuntimeException(exception); } ApplicationContext.getResourceCache().put(imageURL, image); } // Update the image imageView.setImage(image); } } }); listButton.setSelectedIndex(0); } }
No comments:
Post a Comment