【问题标题】:JavaFX TableView column width change event listenerJavaFX TableView 列宽更改事件监听器
【发布时间】:2013-10-09 10:48:08
【问题描述】:

如何为 JavaFX2 创建TableViewTableColumn“宽度变化”事件监听器?

我的想法是这样的:

tableView.getColumns().addListener(new ListChangeListener() {
    public void anyMethod() {
        System.out.println("TableView Column Width Have Changed")
    }
}

【问题讨论】:

    标签: java javafx-2 javafx


    【解决方案1】:

    试试这个.....它的工作

    Column.widthProperty().addListener(new ChangeListener<Number>
        () {
    
            @Override
            public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
                    System.out.println("change in the widht of address");
            }
        });
    

    【讨论】:

      【解决方案2】:

      WidthProperty()的示例代码

      import javafx.application.Application;
      import javafx.beans.value.ChangeListener;
      import javafx.beans.value.ObservableValue;
      import javafx.scene.Scene;
      import javafx.scene.control.TableColumn;
      import javafx.scene.control.TableView;
      import javafx.scene.layout.StackPane;
      import javafx.stage.Stage;
      
      /**
       *
       * @author reegan
       */
      public class TableWidthChange extends Application {
      
          @Override
          public void start(Stage primaryStage) {
              TableView tableView = new TableView();
              TableColumn column1 =  new TableColumn("Column1");
              TableColumn column2 = new TableColumn("Column2");
              TableColumn column3 = new TableColumn("Column3");
      
              changelistener(column1);
              changelistener(column2);
              changelistener(column3);
      
              tableView.getColumns().addAll(column1,column2,column3);
              StackPane root = new StackPane();
              root.getChildren().add(tableView);
      
              Scene scene = new Scene(root, 300, 250);
      
              primaryStage.setTitle("Hello World!");
              primaryStage.setScene(scene);
              primaryStage.show();
          }
      
          /**
           * The main() method is ignored in correctly deployed JavaFX application.
           * main() serves only as fallback in case the application can not be
           * launched through deployment artifacts, e.g., in IDEs with limited FX
           * support. NetBeans ignores main().
           *
           * @param args the command line arguments
           */
          public static void main(String[] args) {
              launch(args);
          }
      
          public void changelistener(final TableColumn listerColumn) {
              listerColumn.widthProperty().addListener(new ChangeListener<Number>() {
      
                  @Override
                  public void changed(ObservableValue<? extends Number> ov, Number t, Number t1) {
                      System.out.print(listerColumn.getText() + "  ");
                      System.out.println(t1);
                  }
              });
          }
      }
      

      【讨论】:

        【解决方案3】:

        TableColumn 有一个 widthProperty(),您可以将自己附加到

        【讨论】:

        • 感谢您的快速响应。你能举个例子吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-01-11
        • 2014-07-12
        • 1970-01-01
        • 2015-12-19
        • 2018-09-28
        • 2014-05-08
        • 1970-01-01
        相关资源
        最近更新 更多