Re[2]: Массив JButtons
От: leska http://highprog.com
Дата: 02.02.07 07:27
Оценка: 3 (1)
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, Аноним, Вы писали:

А>Есть такой вариант, но не уверен что он лучший

А>
А>    private class MineListener implements ActionListener{

А>        public void actionPerformed(ActionEvent e) {
А>            for(i=0; i<(_setBoardSize*_setBoardSize); i++)
А>                if(e.getSource()==_cellBtn[i])
А>                    _cellBtn[i].setText("0");
А>        }        
А>    }
А>


Угу... А можно вот так:
    private class MineListener implements ActionListener{

        public void actionPerformed(ActionEvent e) {
                 ((JButton) e.getSource()).setText("0");
        }        
    }
Кризис добрался и до IT? Узнай как стать фрилансером.
Массив JButtons
От: Аноним  
Дата: 01.02.07 19:07
Оценка:
Имеется массив кнопок

    public GUIBoard(int boardSize){
        _setBoardSize = boardSize;
        setLayout(new GridLayout(_setBoardSize, _setBoardSize));
        _cellBtn = new JButton[_setBoardSize*_setBoardSize];
        for(i=0; i<(_setBoardSize*_setBoardSize); i++){
            _cellBtn[i] = new JButton("x");
            _cellBtn[i].addActionListener(new MineListener());
            add(_cellBtn[i]);
        }
    }


Каким образом можно отслеживать все кнопки? Прописывать каждую по отдельности? Или что то нужно менять.
Идея сделать поле как в игре MineSweeper.

Если я не в правильном направлении дайте пожалуйста краткое обьяснение и если можно ссылочки.
Java только учу, по этому ссылки на сложные обьяснения могут сильно замедлить обучение.
Re: Массив JButtons
От: Аноним  
Дата: 01.02.07 19:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Имеется массив кнопок


А>
А>    public GUIBoard(int boardSize){
А>        _setBoardSize = boardSize;
А>        setLayout(new GridLayout(_setBoardSize, _setBoardSize));
А>        _cellBtn = new JButton[_setBoardSize*_setBoardSize];
А>        for(i=0; i<(_setBoardSize*_setBoardSize); i++){
А>            _cellBtn[i] = new JButton("x");
А>            _cellBtn[i].addActionListener(new MineListener());
А>            add(_cellBtn[i]);
А>        }
А>    }
А>


А>Каким образом можно отслеживать все кнопки? Прописывать каждую по отдельности? Или что то нужно менять.

А>Идея сделать поле как в игре MineSweeper.

А>Если я не в правильном направлении дайте пожалуйста краткое обьяснение и если можно ссылочки.

А>Java только учу, по этому ссылки на сложные обьяснения могут сильно замедлить обучение.

Есть такой вариант, но не уверен что он лучший

    private class MineListener implements ActionListener{

        public void actionPerformed(ActionEvent e) {
            for(i=0; i<(_setBoardSize*_setBoardSize); i++)
                if(e.getSource()==_cellBtn[i])
                    _cellBtn[i].setText("0");
        }        
    }
Re: Массив JButtons
От: Turtle.BAZON.Group  
Дата: 02.02.07 04:18
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Каким образом можно отслеживать все кнопки? Прописывать каждую по отдельности? Или что то нужно менять.

А>Идея сделать поле как в игре MineSweeper.

Не совсем понял (или совсем не понял), что Вам надо. Если вы хотите отслеживать состояние каждой кнопки (открыта, флаг или еще что-нибудь), то просто повесьте ActionListener (он у Вас уже есть) и по совершению действия помечайте в каком-нибудь внутреннем массиве состояние кнопки. Как вариант, сделать JMyButton, который еще помимо того, что это будет JButton, хранить еще и состояния свои. Может, можно на JComponent в свингах объект повесить (я свинга не знаю)?
... << RSDN@Home 1.2.0 alpha rev. 669>>
Re[3]: Массив JButtons
От: Pumych  
Дата: 02.02.07 11:42
Оценка:
Здравствуйте, leska, Вы писали:

L>Угу... А можно вот так:

L>
L>    private class MineListener implements ActionListener{

L>        public void actionPerformed(ActionEvent e) {
L>                 ((JButton) e.getSource()).setText("0");
L>        }        
L>    }
L>


Спасибо, именно это и нужно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.