2012-09-22 59 views
1

在GWT中,如何在Image对象添加到面板后设置其位置?似乎没有设置图像顶部和左侧位置的方法。我们是否必须从面板中删除图像并使用所需的左值和最高值重新添加图像?什么是最好的方法?如何修改Image对象的位置?

回答

1

我所做的只是:

absolutePanel.setWidgetPosition(myImage, newXvalue, newYvalue); 

假设 'MYIMAGE' 是absolutePanel的孩子。

2

如果设置了绝对位置,你可以

int top = myPanel.getAbsoluteTop(); 
int left = myPanel.getAbsoluteLeft(); 
myImage.getElement().getStyle().setTop(top + 100, Unit.PX); 
myImage.getElement().getStyle().setLeft(left + 100, Unit.PX); 

或者,您也可以设置“位置:亲属”你的形象风格。然后,您可以在图像上设置“顶部”和“左侧”,并且它将相对于其父元素进行定位。

+0

我的图像对象位于面板内部。我需要设置相对于此面板的图像位置。 –

+0

我更新了我的答案,但您需要编辑您的问题以使其更清楚。 –

1

从问你的问题的方式来看,我假设你正在尝试使用GWT,因为你将使用来自Java的Swing或SWT。这不是GWT使用的方式,大多数时候导致非常糟糕的代码和非常糟糕的项目。

GWT不是关于隐藏浏览器。所以如果你想改变一个元素的位置,你会主要使用CSS。

只需在头两个CSS类添加到您的项目

.before{ 
    position: relative; 
    top: 0px; 
    left: 0px; 
} 

.after{ 
    position: relative; 
    top: 100px; 
    left: 100px; 
} 

给你的形象第一类:

image.addStyleName("before"); 

及更高版本:

image.addStyleName("after"); 

如果你真的需要动态地(一些计算大小),你可以设置元素的样式属性:

image.getElement().getStyle().setLeft(value, Unit.PX); 
image.getElement().getStyle().setTop(value, Unit.PX); 
+0

是的,我需要它是动态的,我正在移动基于改变的值的图像对象。 –