Dziedziczenie - Swing

0

JPawel
Cześć słuchajcie mam problem z natury wstępnej i w sumie to chyba wiem ale wolę się od Was czegoś dowiedzieć.
Jak to jest?, bo trochę się pogubiłem :(

  1. Czy wszystkie komponenty jak JButton, JTextField dodaje się do kontenerów takich jak np. JPanel?
  2. Czt później kontenery dodaje się do okien takich jak: JFrame?
  3. Żeby pokazać następnie aplet to należy dziedziczyć z klasy Window?

Jaka jest właściwa zasada?

0
class Ramka extends JFrame{
public Ramka(){
setTitle("Ramka");
selSize(100,100);
selLocation(100,100);
JPanel panel=new JPanel(new BorderLayout);
panel.add(new JButton("test"),BorderLayout.NORTH);
panel.add(new JTextArea(),BorderLayout.CENTER);
add(panel);
setVisible(true);
}
publis static void main(String args[0]){
new Ramka();
}
}

pozdrawiam

0

dzięki, jednak tak jak myślałęm, że JFrame wszystk ozałatwia. natomiast widziałęm cosw stylu takiego.
class klasa extends Component
{
.......
paintComponent() {}
}
No i Tworzy się taki komponent i dopiero umieszcza na oknie JFrame :)
Zatem jest wiele możliwości takich jak dotąd widzialem.

0
JPawel napisał(a)
  1. Czy wszystkie komponenty jak JButton, JTextField dodaje się do kontenerów takich jak np. JPanel?

Zawsze musi być jakiś kontener na komponenty wizualne. Przynajmniej jeden. Jeśli nie używasz menadżerów układu komponentów wystarczy jeden kontener. Jeśli używasz menadżerów to jeden menadżer przypada na jeden kontener.

JPawel napisał(a)
  1. Czt później kontenery dodaje się do okien takich jak: JFrame?

Tylko główny kontener zawierający wszystkie pozostałe.

JPawel napisał(a)
  1. Żeby pokazać następnie aplet to należy dziedziczyć z klasy Window?

Jeśli chcesz uruchomić applet w zwykłej aplikacji tworzysz go, wywołujesz metodę init i ew start, a następnie przekazujesz główny kontener do twojego frame'a.

Jeśli chodzi o samo dziedziczenie, to wszystko zależy od potrzeb. Jeśli chcesz napisać swój własny komponent, który nie ma nic wspólnego z innym istniejącym komponentem dziedziczysz po Component, ale jeśli chcesz napisać komponent o funkcjonalności etykiety z dodatkowymi funkcjami dziedziczysz po JLabel, bo chcesz rozszeżyć jego funkcjonalność.

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