base:
La maggior parte delle librerie di classi GUI in C++ sono specifica piattaforma, non solo a causa di diverse funzioni hardware, ma sottili differenze tra il "look-and-feel" delle diverse realtà operative Windowing sistemi. Java Abstract Window Toolkit fornisce una libreria multipiattaforma che cerca di osservare le convenzioni di tipo "look and feel" di varie piattaforme OS.
Toolkit ------------------------------------------------ AWT
--------|---------
Button List JVM
------|-------------|--------------------------------------------------
Button Peer List Peer Native GUI (Windows, Mac, X)
Maggiori informazioni su Java GUI Event Programming
AWT fornisce due livelli di API:
Un'interfaccia generale tra Java e il sistema nativo, usato per a finestre, eventi, e gestori di layout. Questa API è al centro della programmazione GUI Java ed è anche utilizzata da Swing e Java 2D.Esso contiene:
- L'interfaccia tra il sistema di finestre nativo e l'applicazione Java;
- Il nucleo del sottosistema di eventi della GUI;
- Diversi gestori di layout;
- L'interfaccia per dispositivi di input come mouse e tastiera;
e
- Un pacchetto java.awt.datatransfer da utilizzare con gli Appunti e il trascinamento.
Un set di base di GUI widget come pulsanti, caselle di testo e menu.
Fornisce inoltre lo AWT Native Interface, che consente alle librerie di rendering compilate in codice nativo di disegnare direttamente su una superficie di disegno di un oggetto Canvas AWT.
AWT rende anche alcune funzionalità di livello superiore disponibile per le applicazioni, come ad esempio:
accesso al vassoio del sistema su sistemi di supporto; e La possibilità di avviare alcune applicazioni desktop come browser Web e client di posta elettronica da un'applicazione Java.
Per ottenere il codice sorgente per le classi AWT nativi OpenJDK utilizzare il collegamento sotto
jdk6/jdk6-gate/jdk/src/windows/native/sun/
jdk6/jdk6-gate/jdk/src/windows/native/sun/windows/ (classi di Windows-AWT-nativi).
OpenJDK (GPL)
- Sun ha annunciato nel 2006 che Java sarebbe diventato il software open-source.
- Rilasciato il codice sorgente completo della libreria di classi Java sotto GPL l'8 maggio 2007,
- L'11 ottobre 2010, IBM, di gran lunga il più grande partecipante al progetto Apache Harmony, ha deciso di unirsi a Oracle nel Progetto OpenJDK, spostando efficacemente i suoi sforzi da Harmony a OpenJDK.
- L'11 gennaio 2011, il progetto Mac OS X Port è stato creato su OpenJDK e Apple ha dato il primo contributo pubblico del codice al progetto. Il contributo Apple iniziale basato sulla porta BSD OpenJDK (OpenJDK™ 6 Source Release).
Riferimento:
[OpenJDK Repositories.]
Open jdk6/jdk6-gate/jdk/src/share/classes/java/awt/ (codice di esempio AWT Fonte Package)
Il principale OpenJDK project, che si basa su JDK 7
si può scoprire caratteristiche OpenJDK here
Caciocavallo , Progetto che fornisce un'API Java basata su OpenJDK per semplificare l'implementazione AWT su nuovi sistemi. Il progetto ect ha implementato con successo i widget AWT utilizzando Java2D.
[OpenJDK Mailing list.]
AWT Documentation Read per ottenere chiare le conoscenze sulle sue implementazioni.
Fallow awt-dev Mailing Lists di mettersi in gioco.
fonte
2012-02-25 22:22:13
Bello, ben trovato. Hai trovato da dove vengono chiamate quelle funzioni? – Jivings
Ogni componente AWT ha un peer: class, che rappresenta il componente nativo. Se si guarda nel codice sorgente, vedrete che ci sono diversi metodi Java nativo, che manipola la classe AWTCheckBox (per esempio) e di fatto crea il componente nativo. Guardate in http://hg.openjdk.java.net/jdk7/awt/jdk/file/23bdcede4e39/src/windows/native/sun/windows/awt_Checkbox.cpp (linea 663). Viene chiamato da Java per creare il peer del componente AWT. –
È possibile avere la risposta contrassegnata corretta perché si è risposto più rapidamente con una risposta effettiva che aveva senso ed era utile. – Jivings