私はカスタムの "FillLabel"クラスを作成しました。次に、CSSスタイルのプロパティwidth/heightを両方とも100%に設定します。このカスタムFillLabelクラスは要件を満たすようです... より洗練されたソリューションがあると感じていますが、私は他の人を歓迎します。
私はグリッドを拡張し、さまざまなマウスイベントインタフェースを追加しました:
import com.google.gwt.event.dom.client.*
import com.google.gwt.event.shared.HandlerRegistration;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.Label;
public class FillLabel
extends Grid
implements HasMouseOutHandlers,
HasMouseOverHandlers,
HasMouseMoveHandlers
{
private Label label;
/** Use this constructor if you are creating a root for a new tree. */
public FillLabel(String name) {
super(1,1);
this.label = new Label(name);
this.setWidget(0, 0, this.label);
}
/***************************************************************************
* Mouse Over Events
***************************************************************************/
@Override
public HandlerRegistration addMouseOverHandler(MouseOverHandler handler) {
return this.addDomHandler(handler, MouseOverEvent.getType());
}
/***************************************************************************
* Mouse Out Events
***************************************************************************/
@Override
public HandlerRegistration addMouseOutHandler(MouseOutHandler handler) {
return this.addDomHandler(handler, MouseOutEvent.getType());
}
/***************************************************************************
* Mouse Move Events
***************************************************************************/
@Override
public HandlerRegistration addMouseMoveHandler(MouseMoveHandler handler) {
return this.addDomHandler(handler, MouseMoveEvent.getType());
}
}
これは非常に悪い解決策です。使用しないでください。 –
誰かに "あなたの解決策が悪いと言ったら、同じ結果を得るためにyの代わりにxをする必要があります"あなたの解決策は私のやり方をしゃぶりますが、なぜ私の道が良いのか言っても怠けです。私には全く説得力のない同じことをしても "。 (ソリューションxと既に提示されているものとを対比させる必要があります) –
私のソリューションはすべての要件に適合しています...少なくとも「ソリューションはすべての要件を満たしています」という点で「良い」です。 (...私がすでに述べたように、私のソリューションは "エレガント"だとは思わない) –