Nie wyświetla się setTitle() z konstruktora

0

witam, jestem mocno zielony w Javie...zasadniczo mam pytanie odnośnie tego dlaczego umieszczająć takie funkcje jak np. setTitle("bleble"); lub setSize(100,100); w konstruktorze ramki nie wyświetla mi się to po kompilacji ale jesli umieszczę je hierarchicznie poziom wyżej np. ramka.setTitle("bleble"); to już jest ok... nie moge dojść dlaczego tak się dzieje. Wiem, że pewnie robię jakiś banalny błąd ale w książkach są te funkcje umieszczane w konstruktorze.
Pozdrawiam
przykładowy kod:

package osoby;
import java.awt.*;
import javax.swing.*;

public class Main {
       public static void main(String[] args) {
        // TODO code application logic here
        JFrame Osoby = new JFrame();
        Osoby.setVisible(true);
    }
}

class Osoby extends JFrame
{
    public Osoby()
    {
        setTitle("Panel Osoby");
        setSize(300,300);
    }
}
1

A na jakiej podstawie uważasz, że konstruktor klasy Osoby zostanie wywołany? W swoim kodzie masz referencję o nazwie Osoby, która pokazuje na obiekt JFrame. Mogła by pokazywać na obiekt typu Osoby, bo dziedziczy on po JFrame (czyli coś w stylu: JFrame Osoby = new Osoby();), ale powinieneś wywołać w konstruktorze Osoby konstruktor klasy bazowej.

Ogólnie coś mi to wygląda na sytuację, że nie za bardzo wiesz co robisz. Zaczynasz naukę od razu od pisania aplikacji w Swingu? Może poćwicz najpierw i pisz sobie pod konsolę.

0

Dzięki, rozjaśniło mi to w głowie....

1 użytkowników online, w tym zalogowanych: 0, gości: 1