我怎么知道TableView是否为空?

时间:2016-03-26 16:36:39

标签: javafx javafx-8

我正在尝试在JavaFX 8中执行一个BooleanBinding,它确定TableView是否为空。我怎么能这样做?

7 个答案:

答案 0 :(得分:6)

使用

Bindings.isEmpty(table.getItems())

答案 1 :(得分:0)

ObservableList<> items = table.getItems();

if (items.isEmpty()) {
     //do some
} else {
     //your table wasn't empty
}

也应该有用

答案 2 :(得分:0)

代码对我来说很有用 试试吧 !这很简单

ObservableList<> list = tableview.getItems();

if (list.size() > 0) 
{

} 
else 
{
     //Empty Tableview
}

答案 3 :(得分:0)

    //import javafx.beans.binding.Bindings;
    if(Bindings.isEmpty(tableViewFxId.getItems()).get()) {
        //EMPTY


    }else{
        //FILLED


    }

答案 4 :(得分:0)

由于必须从TableView填充ObservableList,因此检查表是否为空的最简单方法是检查ObservableList是否为空。

if (yourObservableList.isEmpty(){
    // run code if table is empty.
} 

答案 5 :(得分:0)

或尝试以下操作:

package application;

import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXDialog;
import com.jfoenix.controls.JFXDialogLayout;
import javafx.collections.ObservableList;
import javafx.scene.control.TableView;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;

public class Mensaje {


    public Object mensaje( @SuppressWarnings("rawtypes") TableView table, StackPane Stack) {
        ObservableList<?> items = table.getItems();
        if(items.isEmpty()) {
                Text cabecera = new Text();
                cabecera.setText("NOTIFICACION");
                cabecera.setStyle("-fx-fill:red;-fx-font-weight:bold");
                Text mensaje= new Text();
                mensaje.setText("DATOS NO ENCONTRADOS");
                mensaje.setStyle("-fx-fill:black;-fx-font-weight:bold");
                JFXDialogLayout contenido = new JFXDialogLayout();
                contenido.setHeading((cabecera));
                contenido.setBody(mensaje);
                contenido.setStyle(" -fx-background-color:  linear-gradient( from 0.0% 0.0% to 100.0% 100.0%, rgb(153,204,153) 0.0, rgb(153,204,153) 100.0);");
                JFXDialog dialogo = new JFXDialog(Stack,contenido, JFXDialog.DialogTransition.CENTER);
                JFXButton cerrar = new JFXButton("CERRAR");
                cerrar.setStyle(" -fx-background-color: white;-fx-border-color:  linear-gradient(to bottom, red 14%, red 91%); -fx-border-radius:  15%; -fx-text-fill: red;  -fx-font-family: 'Oswald Regular';-fx-font-weight: bold; -fx-border-width: 5px;-fx-background:none;-fx-border-insets: -5.8;");
                cerrar.setOnAction(e3->{
                dialogo.close();
                });
                contenido.setActions(cerrar);
                dialogo.show(); 
        }
        return items;

    }
}

答案 6 :(得分:-1)

您可以尝试以下方法:

public Object mensaje(@SuppressWarnings("rawtypes") TableView table) {
    ObservableList<?> items = table.getItems();
    if(items.isEmpty()) {
            Text cabecera = new Text();
            cabecera.setText("NOTIFICACION");
            cabecera.setStyle("-fx-fill:red;-fx-font-weight:bold");
            Text mensaje= new Text();
            mensaje.setText("DATOS NO ENCONTRADOS");
            mensaje.setStyle("-fx-fill:black;-fx-font-weight:bold");
            JFXDialogLayout contenido = new JFXDialogLayout();
            contenido.setHeading((cabecera));
            contenido.setBody(mensaje);
            contenido.setStyle(" -fx-background-color:  linear-gradient( from 0.0% 0.0% to 100.0% 100.0%, rgb(153,204,153) 0.0, rgb(153,204,153) 100.0);");
            JFXDialog dialogo = new JFXDialog(stackpaneitems,contenido, JFXDialog.DialogTransition.CENTER);
            JFXButton cerrar = new JFXButton("CERRAR");
            cerrar.setStyle(" -fx-background-color: white;-fx-border-color:  linear-gradient(to bottom, red 14%, red 91%); -fx-border-radius:  15%; -fx-text-fill: red;  -fx-font-family: 'Oswald Regular';-fx-font-weight: bold; -fx-border-width: 5px;-fx-background:none;-fx-border-insets: -5.8;");
            cerrar.setOnAction(e3->{
            dialogo.close();
            });
            contenido.setActions(cerrar);
            dialogo.show(); 
    }
    return items;

}