Использование массива в качестве параметра для класса - PullRequest
1 голос
/ 18 апреля 2010

Я создал массив Man:

public main blah blah{
man = man[10];
}

Человек имеет такие поля, как

Man.name;
Man.age;
...

В классе Man есть метод OnClick, который открывает новое окно с указанием его имени и возраста.

public Man(){

    Onclick(){
        InfoWindow showinfo = new InfoWindow(this.getid()) // If this is Man[2] the id would be 2.

}

А в классе InfoWindow:

public class InfoWindow extends JFrame{
    public InfoWindow(Man selectedMan){
        setSize(300, 200);
        JLabel info = new JLabel(selectedMan.getname());
        add(info);
        info.setVisible(true);
     }
}

По сути, это хочу выполнить (показать в псевдокоде), передать Man [i] в ​​класс, который при создании окна отображает информацию, связанную с этим человеком. Вот как я на самом деле пытаюсь это реализовать, но это не работает, я уверен, что в какой-то части от меня есть неправильное представление.

Любая помощь?

Фактический код:

***MAN CLASS***
private class MouseListenerHandler extends MouseAdapter {
        public void mousePressed(MouseEvent e) {
            InfoWindow manShowInfo = new InfoWindow(this); Not Working. Getting "constructor not defined"
            unitShowInfo.setVisible(true);

        }
    }

*InfoWindow class*
public class InfoWindow extends JFrame {
    public InfoWindow(Man selectedMan){
        setSize(300, 200);
        JLabel label = new JLabel(selectedMan.getName());
        add(label);
        label.setVisible(true);

    }

And the Man[] is created in the main class.
}

1 Ответ

4 голосов
/ 18 апреля 2010

Попробуйте это:

InfoWindow manShowInfo = new InfoWindow(Man.this);

Поскольку слушатель события сам является экземпляром объекта, простой this ссылается на слушателя. Выполнение Man.this извлечет включающий экземпляр Man для передачи в InfoWindow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...