잘 작동하는 복합 셀이 있는데, 텍스트 입력 셀과 버튼 셀이 있습니다. 그러나 그것이 보여 주었을 때 그림과 같이 버튼 셀을 텍스트 입력 셀 아래에 놓았을 때 CellTable의 합성 셀 너비
여기 hascells를 사용하여 compositecel을 구현했습니다.
final HasCell<ObjetoDato,String> celda1=new HasCell<ObjetoDato,String>(){
TextInputCell celda;
@Override
public Cell<String> getCell() {
celda=new TextInputCell();
return celda;
}
@Override
public FieldUpdater<ObjetoDato, String> getFieldUpdater() {
return null;
}
@Override
public String getValue(ObjetoDato object) {
//new Scripter(object,actual.getComportamiento(),true);
return object.getValor(actual.getNombreCampo());
}
};
HasCell<ObjetoDato,String> celda2=new HasCell<ObjetoDato,String>(){
ButtonCell celda;
@Override
public Cell<String> getCell() {
celda=new ButtonCell();
return celda;
}
@Override
public FieldUpdater<ObjetoDato, String> getFieldUpdater() {
return new FieldUpdater<ObjetoDato, String>(){
@Override
public void update(int index,ObjetoDato object, String value) {
new Seleccionador(actual.getClaseRelacion(), actual.getNombreCampo(),object.getValor(actual.getNombreCampo()), object.getIdRelacion(actual.getNombreCampo()), object,tabla,object,actual.getComportamiento());
}
};
}
@Override
public String getValue(ObjetoDato object) {
return "...";
}
};
//Composite
List<HasCell<ObjetoDato,?>> celdas = new LinkedList<HasCell<ObjetoDato,?>>();
celdas.add(celda1);
celdas.add(celda2);
CompositeCell<ObjetoDato> cell = new CompositeCell<ObjetoDato>(celdas);
Column<ObjetoDato,ObjetoDato> columna = new Column<ObjetoDato,ObjetoDato>(cell) {
@Override
public ObjetoDato getValue(ObjetoDato object) {
return object;
}
};
//columna.setCellStyleNames("columna3puntos");
tabla.agregarColumna(columna,actual.getCaption());
정확하게 무엇이 질문입니까? 나는 당신이 한 줄에 그것을 갖고 싶어한다고 가정합니까? yourCellTable.setWidth ("100 %", true)를 설정할 수 있습니까? 이것은 고정 된 레이아웃을 설정하지만 그것은 너무 고정되어 있다고 봅시다. 그 후 Hovewer를 사용하여 모든 열의 너비를 설정할 수 있습니다. 너는 그렇게 할 수 있니? 디자인에 너무 많은 손상을 입힌다면 아마도 이것이 아닙니다. – Miroslav