第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

VBox 的拖放功能

VBox 的拖放功能

浮云間 2023-03-17 13:55:13
我正在嘗試為我的 JavaFX 項(xiàng)目添加拖放功能。它有點(diǎn)工作,但不是真正在同一時(shí)間VBox questions = new VBox();questions.getChildren().add(createQustionType("long answer"));questions.setStyle("-fx-border-color: blue;");root.setCenter(questions);questions.setOnDragOver(event ->{    event.acceptTransferModes(TransferMode.MOVE);});questions.setOnDragDropped(event ->{    event.setDropCompleted(true);    questions.getChildren().add(createQustionType("long answer"));    event.consume();});questions.setOnDragDone(event -> {});VBox sidePanel = new VBox();root.setLeft(sidePanel);//other unnecessary code removed for questionString[] types = new String[]{"multiple choice", "long answer", "short answer"};for (String type : types){    Button btn = new Button(type);    btn.setOnDragDetected(event ->    {        currBtn = (Button) event.getSource();        event.consume();    });    sidePanel.getChildren().add(btn);}createQuestionType 方法返回一個(gè) borderpane 并接受一個(gè)字符串參數(shù)這是我到目前為止所擁有的,我不知道我哪里出錯(cuò)了,因?yàn)楫?dāng)我從我的桌面或文檔等拖動(dòng)文件時(shí)它似乎工作,我不希望它這樣做。我想使用我添加到側(cè)面板的按鈕,因?yàn)檫@是它的目的。另外,我一直在嘗試在拖動(dòng)時(shí)更改光標(biāo)但也失敗了。如果有人能告訴我我做錯(cuò)了什么,那就太好了。
查看完整描述

1 回答

?
寶慕林4294392

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊

對(duì)于那些不太理解我的問題的人,我深表歉意。下次我會(huì)嘗試更好地表達(dá)我的問題。無論如何,我已經(jīng)設(shè)法解決了我的問題。我意識(shí)到我必須使用DragBoardClipboardContent 這是我想出的最終代碼


VBox questions = new VBox();

root.setCenter(questions);

questions.setOnDragOver(event ->

{

    if (event.getGestureSource() == currBtn && event.getDragboard().hasString())

    {

        event.acceptTransferModes(TransferMode.MOVE);

    }

    event.consume();

});

questions.setOnDragDropped(event ->

{

    Dragboard db = event.getDragboard();

    boolean success = false;

    if (db.hasString())

    {

        questions.getChildren().add(createQustionType(db.getString()));

        success = true;

    }

    event.setDropCompleted(success);

    event.consume();

});


questions.setOnDragDone(event ->

{

    System.out.println("Add clean up code");

    if (event.getTransferMode() == TransferMode.MOVE)

    {

        System.out.println("Drag Done");

    }

    event.consume();

});


VBox sidePanel = new VBox();

root.setLeft(sidePanel);

sidePanel.setMinWidth(100);

//sidePanel.setStyle("-fx-background-color: red");

sidePanel.setStyle("-fx-border-color: red; -fx-min-width: 100px;");

sidePanel.setSpacing(10);


String[] types = new String[]{"multiple choice", "long answer", "short answer"};

for (String type : types)

{

    Button btn = new Button(type);

    btn.getStyleClass().add("qBtn");

    btn.setStyle("-fx-border-color: black;");

    btn.setOnDragDetected(event ->

    {

        currBtn = (Button) event.getSource();

        System.out.println("Dragging node");

        Dragboard db = btn.startDragAndDrop(TransferMode.ANY);

        ClipboardContent content = new ClipboardContent();

        content.putString(btn.getText());

        db.setContent(content);


        event.consume();

    });

    sidePanel.getChildren().add(btn);

}


查看完整回答
反對(duì) 回復(fù) 2023-03-17
  • 1 回答
  • 0 關(guān)注
  • 104 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)