У меня есть простой портлет с несколькими компонентами: 3 Button
объекты, 1 Slider
, 1 MenuBar
и изображение, назначенное для Label
(генерируется сервлетом). Теперь, когда я переключаюсь между изображениями для Label
(у меня их больше), я хочу, чтобы изображение Label
помещалось на старое изображение Label
положение объекта:
Моя картинка Label
находится в левом углу портлета. Объекты Button
, MenuBar
и Slider
находятся под изображением Label
, когда я выбираю другое изображение Label
, новое изображение Label
рисуется под другими компонентами (под объектами Button
) , MenuBar
, Slider
), поэтому объекты Button
находятся сверху, а картинка Label
находится внизу портлета
например, я меняю фон картинки Label
, выбирая цвет в меню:
newItem1.addItem("Blue",new Command(){
public void menuSelected(MenuItem selectedItem){
if(pictureA.isVisible()){
pictureB.setVisible(false);
pictureC.setVisible(false);
window.removeComponent(pictureA);
pictureA= new Label("<img src=http://localhost:8888/portlet/KiviatDiagramm?background=blue", Label.CONTENT_XHTML);
window.addComponent(pictureA);
} else {
window.showNotification("", Notification.TYPE_WARNING_MESSAGE);
}
}
});
ОБНОВЛЕНИЕ:
Я переключился с Label
объектов на встроенные изображения (Embedded
) (что намного лучше). Я попытался переназначить ресурс на объект Embedded
новым цветом, но он не работает, вот что я сделал:
public void init() {
URL PictureAUrl= null;
try {
pictureAUrl= new URL("http://localhost:8888/portlet/pictureA");
} catch (MalformedURLException e) {
e.printStackTrace();
}
URL PictureBUrl= null;
try {
pictureAUrl= new URL("http://localhost:8888/portlet/pictureB");
} catch (MalformedURLException e) {
e.printStackTrace();
}
URL pictureCUrl= null;
try {
pictureCUrl= new URL("http://localhost:8888/portlet/pictureC");
} catch (MalformedURLException e) {
e.printStackTrace();
}
final Embedded pictureA = new Embedded("", new ExternalResource(pictureAURL));
pictureA .setType(Embedded.TYPE_IMAGE);
final Embedded pictureB = new Embedded("", new ExternalResource(pictureBURL));
pictureB .setType(Embedded.TYPE_IMAGE);
final Embedded pictureC = new Embedded("", new ExternalResource(pictureCURL));
pictureC .setType(Embedded.TYPE_IMAGE);
newItem.addItem("ColorBlue", new Command(){
public void menuSelected(MenuItem selectedItem) {
if(!pictureA.equals(pictureB )){
Resource newPictureResource = new ExternalResource("http://localhost:8888/portlet/pictureA?background=blue");
newPictureResource.setType(Embedded.TYPE_IMAGE);
pictureA.setResource(newPictureResource);
}
else {
window.showNotification("Please select pictureA");
}
}
});