여기 cellfactory를 사용하여 사용자 지정 목록 뷰를 만들고 사용자 지정 노드로 업데이트했지만 셀을 선택할 때 그래픽 (내용)을 변경해야합니다. 내가 선택한 셀의 모양을 변경하려면 CSS를 사용하지만, 여기에 내가 목록보기에서 선택된 셀의 그래픽 (내용)을 업데이 트하고 싶습니다 배경 색상이나 텍스트 색상이 없습니다.Is 거기에 어떤 식 으로든 어떻게 할거야 ??JavaFX ListView- cellfactory를 사용하여 선택된 셀보기 업데이트
은 일반적으로 내 목록보기 계층 구조처럼이
Hbox->을 Label1, Label2이
하지만 난 셀을 선택하면 그것은 (선택된 셀)이
Hbox-처럼 업데이트해야합니다 > Label1, Label2, Labe3, Label4, Button1
여기 내 코드입니다
Callback<ListView<CustomListView>, ListCell<CustomListView>> cellFactory = new Callback<ListView<CustomListView>, ListCell<CustomListView>>()
{
@Override
public ListCell<CustomListView> call(ListView<CustomListView> arg0)
{
cell = new ListCell<CustomListView>()
{
@Override
protected void updateItem(CustomListView item, boolean bln)
{
super.updateItem(item, bln);
if(item == null)
{
setGraphic(null);
setText(null);
return;
}
else
{
//Normally my listview will display like this(An HBOX with 2 Labels)
HBox h1 =new HBox();
Label itemName=new Label("item1);
Label price=new Label("100");
h1.getchildren.addAll(itemName,price);
setGraphic(h1);
//When i select any cell it should display like this((An Hbox with 4 Labels(selected cell only,remaining cells in first format))
HBox h2 =new HBox();
Label itemName=new Label("item1);
Label price=new Label("100");
Label Discount=new Label("50%");
Label Tax=new Label("5%");
Button b1=new Button();
h2.getchildren.addAll(itemName,price,discount,tax,b1);
setGraphic(h2);
//i have tried with these lines of codes but it does not working properly
cell.selectedProperty().addListener((obs, wasSelected, isNowSelected) -> {
if(isNowSelected==false)//not selected
{
//load hbox1
}
else //selected
{
//load hbox2
}
}
}
}; return cell;
}
};
listView.setCellFactory(cellFactory);
http://stackoverflow.com/help/mcve을 읽고 그에 따라 행동하십시오 또한 컴파일 않도록 코드에서 꽤 많은 오류 ... 다음 코드는하지만 작동합니다
이있다 :) – kleopatra