Imports bei GUIs mit EventListener

Status
Nicht offen für weitere Antworten.

heigro69

Mitglied
Hallo Leute,

jedes Javaprogramm (hier mit Swing), das mit EventListenern arbeitet, muss folgendes importieren:

Code:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

hier nun mein Verständnisproblem:
wieso muss ich ,wenn ich schon java.awt.* importiere (also alles unterhalb von java.awt ! )
trotzdem noch java.awt.event.* importieren?

Danke
heigro69
 

DreamArtist

Bekanntes Mitglied
schau dir mal die api an.

jedes package kann wie am computer ein ein File eine Datei ( Klasse ) oder ein Ordner ( package ( event ) ) sein.

zb.: java.awt.Label
java.awt.awt.event.ActionListener

und weil ActionListener und ActionEvent für das Eventhandling notwendig sind sind sie in den Package awt.event.
Die Komponenten aus dem swing werden ja von den klassen des awt abgeleitet ( Label -> JLabel )
Daher ist dank der Vererbung keine notwendigkeit gegeben es in swing.event nocheinmal zu programmieren

und zu der frage warum du wenn du java.awt importierst noch anderes importieren musst hat den grund das der Compiler nicht jede klasse checken muß ob sie auch verwendet wird.

Sonst könnte man ja gleich import * schreiben und alle klassen importieren.

OK :###
 

heigro69

Mitglied
Danke für die Antwort. Habe inzwischen selbst im Buch "JAVA IN A NUTSHELL" gelesen
und ich glaube ich weiß jetzt wo mein Fehler lag. Ich hatte bei java.awt.*
bzw. java.awt.event.* eher eine Directory-Struktur assoziiert. Ich habe nun
folgendes im oben erwähnten Buch gefunden:

  • Um ein ganzes Package zu importieren, schreiben Sie nach import den Namen des Packages,
    die Zeichenfolge .* und schließlich ein Semikolon. Wenn Sie also neben der Klasse File
    noch mehrere andere Klassen aus dem Package java.io verwenden wollen, dann können Sie
    einfach das gesamte Package importieren:
    Code:
    import java.io.*;   // Jetzt können wir einfache Namen für alle Klassen in
                        // java.io verwenden

    Diese Syntax zum Importieren von Packages umfasst aber keine Subpackages.(Heureka!!) :D
    Wenn ich das Package java.util importiere, muss ich trotzdem noch java.util.zip.ZipInputStream
    schreiben, also den voll qualifizierten Namen verwenden. Wenn 2 Klassen mit dem gleichen Namen
    aus verschiedenen Packages importiert werden, kann keine mit dem einfachen Namen angesprochen werden.
    Um diesen Namenskonflikt eindeutig aufzulösen, muss für beide Klassen der voll qualifizierte Name
    benutzt werden.
Heigro69
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Schlüsselworte static Methoden und Imports Java Basics - Anfänger-Themen 10
M Imports einzeln oder direkt komplette Pakete .*? Java Basics - Anfänger-Themen 26
W servlet imports nicht unterstützt Java Basics - Anfänger-Themen 3
A Globale Methode ohne imports und übergeben? Java Basics - Anfänger-Themen 2
G imports einlesen und nach den imports abbrechen Java Basics - Anfänger-Themen 4
S Probleme mit Imports | Standardbibliotheken. Java Basics - Anfänger-Themen 6
T Animierte Guis Java Basics - Anfänger-Themen 4
D GUIs ineinander verschachteln Java Basics - Anfänger-Themen 5
B OOP "Optimale" Code-Struktur bei Applikationen mit GUIs Java Basics - Anfänger-Themen 3
P Geschwindigkeitsoptimierung GUIs Java Basics - Anfänger-Themen 2
S JAVA Swing Eventlistener Java Basics - Anfänger-Themen 11
K Dinge wie ein Eventlistener Java Basics - Anfänger-Themen 4
K Übergabe einer im EventListener definierte variablen Java Basics - Anfänger-Themen 2
K Eventlistener und inner class Variablen Java Basics - Anfänger-Themen 5
S Java GUI: Probleme mit EventListener und actionPerformed Java Basics - Anfänger-Themen 3
G JFileChooser EventListener auf Öffnen Button Java Basics - Anfänger-Themen 3
G im Eventlistener ne JTable erstellen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben