日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了JavaFX:右擊TableColumn禁用調(diào)整大小的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

在OpenJFX 11.0.2&12.0.1 SDK(Windows 10,x64)中復(fù)制,不能在JavaFX 8中復(fù)制

右鍵單擊表列,然后嘗試調(diào)整該列的大小。未顯示調(diào)整大小光標(biāo),并且在再次手動單擊列之前無法調(diào)整該列的大小。

有什么解決辦法嗎?我需要對TableColumns使用contextMenu,因此無法使用使標(biāo)題忽略鼠標(biāo)右鍵單擊的潛在解決方法。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;

public class Foo extends Application {


    @Override
    public void start(Stage stage) throws Exception {
        TableView<Object> testView = new TableView<>();
        testView.getColumns().addAll(new TableColumn<Object, Object>("C1"), new TableColumn<Object, Object>("C2"), new TableColumn<Object, Object>("C3"));

        stage.setScene(new Scene(testView));
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

推薦答案

好了,我發(fā)現(xiàn)了以下(非常非常臟)的解決方法。我以前從未嘗試過這樣做,因為我假設(shè)它會阻止顯示上下文菜單(正如我在最初的問題中所指出的),但顯然只需使用每個TableColumnHeader作品的鼠標(biāo)事件,上下文菜單仍然可以正確顯示(也適用于沒有上下文菜單的TableColumns)。

不確定內(nèi)部是否會出現(xiàn)任何問題,但由于默認(rèn)情況下右擊似乎不起任何作用,我希望不會。

當(dāng)然,lookupAll需要在呈現(xiàn)之后調(diào)用。

注意1:如果將TableMenuButtonVisible設(shè)置為True,則需要在每次將列設(shè)置為可見時執(zhí)行此操作。

注2:越來越臟。簡單地在將列設(shè)置為可見之后再次調(diào)用它(請參見注釋1)并不總是足夠(也不是通過Platform.runLater調(diào)用)。我認(rèn)為這是因為列標(biāo)題在那時還沒有被呈現(xiàn)。您要么

需要等待Set<Node>填滿,即
必須是amountOfVisibleColumns + 1。如果它等于
對于可見列,它將不適用于新顯示的列。
或在lookupAll之前在TableView上調(diào)用layout()
或者,如果您有擴展TableView的類,則重寫layoutChildren并在可見列數(shù)發(fā)生變化時執(zhí)行查找

注意3:您需要跟蹤舊的onMousePressed,如果按鈕不是SECONDARY,則執(zhí)行它,否則列的重新排序?qū)o法工作。

請讓我知道你是否能想到更干凈的方法。

import java.util.Set;

import javafx.application.Application;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.MenuItem;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.skin.TableColumnHeader;
import javafx.scene.input.MouseButton;
import javafx.stage.Stage;

public class Foo extends Application {

    @Override
    public void start(Stage stage) throws Exception {
        TableView<Object> testView = new TableView<>();
        testView.getColumns().addAll(createColumn("C1"), createColumn("C2"), createColumn("C3"));

        stage.setOnShown(ev -> {
            Set<Node> headers = testView.lookupAll("TableColumnHeader");
            for (Node header : headers) {
                if (header != null) {
                    ((TableColumnHeader) header).setOnMousePressed(e -> {
                        if (e.getButton() == MouseButton.SECONDARY) {
                            e.consume();
                        }
                    });
                }
            }
        });

        stage.setScene(new Scene(testView));
        stage.show();
    }

    private TableColumn<Object, Object> createColumn(String text) {
        MenuItem item = new MenuItem("Context");
        item.setOnAction(e -> {
            System.out.println("Action");
        });

        ContextMenu contextMenu = new ContextMenu();
        contextMenu.getItems().add(item);

        TableColumn<Object, Object> column = new TableColumn<>(text);
        column.setContextMenu(contextMenu);

        return column;
    }

    public static void main(String[] args) {
        launch(args);
    }
}

這篇關(guān)于JavaFX:右擊TableColumn禁用調(diào)整大小的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標(biāo)簽:JavaFX TableColumn 右擊 大小 禁用 調(diào)整
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定