Skocz do zawartości

Jin

Członkowie
  • Postów

    6
  • Dołączył

  • Ostatnio

    Nigdy

Posty napisane przez Jin

  1. 1. dlaczego values_[r].length - nie wiem, w tym przypadku użycie columns było by chyba bardziej czytelne :

    for (int r=0; r < rows; r++) {
        for (int c=0; c < columns; c++) {
            .......
        }
    }

    Jeśli tablice 2 wymiarową wyobrazimy sobie jako tabelkę to każda linijka zawiera określoną ilość kolumn

    values_[numer linijki].length() = ilość kolumn (UWAGA: numer linijki liczony jest od 0)

    2. dlaczego akurat values_.length-1? Bo adresacja tablic liczona jest od 0 a ilość elementów metodą .length() od 1.

    values_[0][2] - wskazuje na element z pierwszej linijki i trzeciej kolumny.

    Trzeba pamiętać jeszcze, że deklaracja tablic liczona jest od 1:

    values_ = new double[10][10] - 10 linijek z 10-cioma kolumnami.

     

  2. Jeśli te wpisy wykonujesz w konstruktorze klasy to odwoływanie się do ActionListenera przez this może powodować problem, bo do momentu zakończenia konstruktora nie masz pewności że cała klasa została stworzona.

    Istnieje więc prawdopodobieństwo, że w momencie dodania itemu actionListenera jeszcze nie ma.

    Może dodanie go na końcu twojego listingu załatwi problem a najlepiej dodawać go w finalnej metodzie poza konstruktorem lub tworzyć anonimowo : .addActionListener(new ActionListener() {

    .... kod nasłuchiwacza ....

    } ablo tworzyć osobną klasę implementującą ActionListenera chociażby klasęwewnętrzną.

    Ale tylko zgaduje - ten listing błędu który przenosi to bardzo ważna sprawa. Bez załączania takich rzeczy szkoda liczyć na jakąkolwiek pomoc.

  3. Klasa MainArea jest rozszerzona o VLayout którego konstruktor jest wywołany przez super(). Później tworzysz nowy Vlayout: mainLayout = new VLayout(); i wpisujesz go w już istniejący: this.addMember(mainLayout); Podobnie z MyDataGrid. Jeśli jest już rozszerzona o hlayout to nie ma sensu wpisywać tego w nowy hlayout, przynajmniej nie w tym przypadku. Może tak będzie lepiej:

    public MainArea() {
        super();
        setWidth100();
        setHeight100();
        this.addMember(new MyDataGrid());
    }
×
×
  • Utwórz nowe...