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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有沒有辦法縮短由于對象屬性相似而重復(fù)的代碼?

有沒有辦法縮短由于對象屬性相似而重復(fù)的代碼?

慕尼黑8549860 2023-07-28 09:24:01
我有許多復(fù)選框,所有這些復(fù)選框都依賴于某個未選中的框,但如果確實選中了該框,則必須選中并隱藏該框。我知道人們一直在說 ArrayList,但是我不知道如何編輯 ArrayList 中項目的某些屬性的語法。我的代碼可以工作,我只需要這段代碼更短,因為我相信如果它繼續(xù)像這樣運行,最終會減慢進程,并且我想了解這對于我有相同功能的其他對象是如何工作的。 public void cbxSalesSelectA() {    boolean t = cbx_SALES_Select_All.getText().equals("Select All");    cbx_SALESQtySold.setSelected(t);    cbx_SALESDateSold.setSelected(t);    cbx_SALESCustomer.setSelected(t);    cbx_SALESDiscount.setSelected(t);    cbx_SALESLineNumber.setSelected(t);    cbx_SALESConsultant.setSelected(t);    cbx_SALES_Header_Row.setSelected(t);    if (t) {        cbx_SALES_Select_All.setText("Deselect All");    } else {        cbx_SALES_Select_All.setText("Select All");    }} public void cbxLOCSelectA() {    boolean t = cbx_LOC_Select_All.getText().equals("Select All");    cbx_LOCHeight.setSelected(t);    cbx_LOCWidth.setSelected(t);    cbx_LOCDepth.setSelected(t);    cbx_LOCWeightCap.setSelected(t);    cbx_LOCAccessibility.setSelected(t);    cbx_LOC_Header_Row.setSelected(t);    if (t) {        cbx_LOC_Select_All.setText("Deselect All");    } else {        cbx_LOC_Select_All.setText("Select All");    }}
查看完整描述

2 回答

?
素胚勾勒不出你

TA貢獻1827條經(jīng)驗 獲得超9個贊

selected我不認為你真的可以提高代碼的性能,但為了可讀性,你可以在單獨的方法中進行更改。例如


static void allSetSelected(boolean isSelected, CheckBox... boxes ) {

    Arrays.stream(boxes).forEach(b -> b.setSelected(isSelected));

}

并像這樣在您的代碼中使用它


public void cbxSalesSelectA() {

    boolean t = cbx_SALES_Select_All.getText().equals("Select All");

    allSetSelected(t, cbx_SALESQtySold,

                      cbx_SALESDateSold,

                      cbx_SALESCustomer,

                      cbx_SALESDiscount,

                      cbx_SALESLineNumber,

                      cbx_SALESConsultant,

                      cbx_SALES_Header_Row)

    if (t) {

        cbx_SALES_Select_All.setText("Deselect All");

    } else {

        cbx_SALES_Select_All.setText("Select All");

    }

}


public void cbxLOCSelectA() {

    boolean t = cbx_LOC_Select_All.getText().equals("Select All");

    allSetSelected(t, cbx_LOCHeight, cbx_LOCWidth, cbx_LOCDepth, cbx_LOCWeightCap, cbx_LOCAccessibility, cbx_LOC_Header_Row);

    if (t) {

        cbx_LOC_Select_All.setText("Deselect All");

    } else {

        cbx_LOC_Select_All.setText("Select All");

    }

}


查看完整回答
反對 回復(fù) 2023-07-28
?
慕尼黑5688855

TA貢獻1848條經(jīng)驗 獲得超2個贊

如果您使用 ArrayList 或復(fù)選框?qū)ο髷?shù)組,則只需使用循環(huán)來遍歷所有復(fù)選框并根據(jù)需要選中或取消選中它們。


例如,


import javafx.application.Application;

import javafx.collections.FXCollections;

import javafx.scene.Scene;

import javafx.scene.control.CheckBox;

import javafx.scene.control.ComboBox;

import javafx.scene.layout.VBox;

import javafx.stage.Stage;


import java.util.ArrayList;

import java.util.List;


public class Example  extends Application {



    @Override

    public void start(Stage primaryStage) throws Exception {

        // Creating an ArrayList here and adding all the checkboxes required. In your

        // case you'd add your existing checkboxes

        List<CheckBox> list = new ArrayList<>();

        list.add(new CheckBox());

        list.add(new CheckBox());

        list.add(new CheckBox());

        list.add(new CheckBox());


        // this combobox controls whether or not all checkboxes are selected

        ComboBox<String> comboBox = new ComboBox<>();


        // two options to either select all or deselect all checkboxes

        comboBox.setItems(FXCollections.observableArrayList("Select All", "Deselect All"));


        // container to hold all the controls

        VBox vBox = new VBox();

        vBox.getChildren().add(comboBox);

        vBox.getChildren().addAll(list);


        // this is the important bit

        // if the combobox selection is changed, then this fires

        comboBox.setOnAction(event -> {

            // if the selected option is select all, then a for-each loop is used to make all the 

            // checkboxes in the arraylist checked and vice versa if the deselect option is selected

            if (comboBox.getSelectionModel().getSelectedItem().equalsIgnoreCase("Select All")) {

                for (CheckBox checkBox : list) checkBox.setSelected(true);

            } else {

                for (CheckBox checkBox : list) checkBox.setSelected(false);

            }

        });


        primaryStage.setScene(new Scene(vBox));

        primaryStage.setTitle("Example");

        primaryStage.setWidth(600);

        primaryStage.setHeight(400);

        primaryStage.show();

    }

}

希望這可以幫助。


查看完整回答
反對 回復(fù) 2023-07-28
  • 2 回答
  • 0 關(guān)注
  • 149 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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