Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java gwt flowpanel始终是新行_Java_Gwt_Flowpanel - Fatal编程技术网

java gwt flowpanel始终是新行

java gwt flowpanel始终是新行,java,gwt,flowpanel,Java,Gwt,Flowpanel,我试图在JavaGWT中使用flowpanel,但是当我添加不同的小部件时,面板会在一行中添加每个小部件,下面是我如何设置flowpanel的 public class Test extends Composite { public abstract class SomeWidget<T> extends Composite { ... } public class SomeStringWidget extends SomeWidget<Str

我试图在JavaGWT中使用flowpanel,但是当我添加不同的小部件时,面板会在一行中添加每个小部件,下面是我如何设置flowpanel的

 public class Test extends Composite {
   public abstract class SomeWidget<T> extends Composite {
      ...
   }

   public class SomeStringWidget extends SomeWidget<String> {
      ...
   }


   public void setWidget() {
     FlowPanel fp = new FlowPanel();
     fp.setWidth("100%");
     fp.add(new SomeStringWidget());
     fp.add(new SomeStringWidget());
     ...
   }
 }
公共类测试扩展了复合{
公共抽象类SomeWidget扩展了复合{
...
}
公共类SomeStringWidget扩展了SomeWidget{
...
}
公共void setWidget(){
FlowPanel fp=新的FlowPanel();
fp.setWidth(“100%”);
fp.add(newsomestringwidget());
fp.add(newsomestringwidget());
...
}
}

为什么每个小部件都设置在一个新行中,而不是像flowpanel应该的那样,将小部件添加到一行中,直到没有更多的空间,然后将它们添加到一个新行中???

我遇到了同样的问题,并为flowpanel小部件分配了样式,以对齐一行中的小部件。这会解决你的问题

FlowPanel fp = new FlowPanel();
fp.setStyleName("flowPanel_inline");
style.css

.flowPanel_inline
{
    display:inline;
}

您还必须在添加的元素中设置相同的样式。

Flow Panel使用样式GWT FlowPanel生成一个DIV元素。如果希望内部小部件是内联的,请使用以下CSS创建内部小部件的CSS:

.SomeStringWidget {
   display: inline;
}

在小部件中,在构造函数中设置CSS类.SomeStringWidget

public SomeStringWidget {
    this.setStyleName("SomeStringWidget");
}

如果您的SomeStringWidget是一个标签,那么它将始终是一个新行。如果不需要换行符,请使用InlineLabel。

您必须在要添加到其中的所有元素中设置此样式。我不知道你添加了什么类型的小部件。但这是必需的。尝试使用不同的样式,如
float:left
display:inline
显示:内联块如@Sam所建议。因为chrome可能有一些问题。您不必将此样式设置为fp。。。仅在inne窗口小部件中。
.SomeStringWidget {
   float: left;
}
public SomeStringWidget {
    this.setStyleName("SomeStringWidget");
}