Вопрос новичка: как получить доступ к созданному экземпляру JComboBox из другого метода того же класса или еще - PullRequest
0 голосов
/ 27 декабря 2010

Если у меня есть:

Класс А {

    // bunch of stuff here

    public void intitialize() {
    // bunch of stuff here

    JComboBox jBox = new JComboBox()

    formatBox.addItem(//some objects added here))
    //I do the rest of my business in this intitialize method

    } 

}

если я хочу добавить другой метод, который при вызове может работать на jBox, как я могу это сделать? этот код не работает:

Class A {

             // bunch of stuff here
             public void intitialize() {
             // bunch of stuff here
             JComboBox jBox = new JComboBox()
             formatBox.addItem(//some objects added here))
             //I do the rest of my business in this intitialize method
             }

            //newly added method
            public void anotherMethod(){

            jBox.removeItem(//some item here)

            }

}

Как правильно написать это, чтобы позволить доступ к jBox из различных методов класса или других классов? и почему это так не работает?

Ответы [ 2 ]

2 голосов
/ 27 декабря 2010

определяет JComboBox как поле в классе A и удаляет объявление типа внутри метода initialize:

Class A {
             private JComboBox  jBox;
             // bunch of stuff here
             public void intitialize() {
             // bunch of stuff here
             jBox = new JComboBox()
             formatBox.addItem(//some objects added here))
             //I do the rest of my business in this intitialize method
             }

            //newly added method
            public void anotherMethod(){

            jBox.removeItem(//some item here)

            }

}
1 голос
/ 27 декабря 2010

Используйте переменную экземпляра и вместо нее сохраните JComboBox. Если вы хотите получить к нему доступ из другого класса, вам, вероятно, следует создать открытый метод getJBox(), чтобы метод экземпляра мог быть закрытым.

Например:

Class A {

    private JComboBox jBox;

    public void intitialize() {
        jBox = new JComboBox()

        formatBox.addItem(//some objects added here))
        //I do the rest of my business in this intitialize method

    }

    public JComboBox() getJBox() {
        return jBox;
    }

}
...