Erinnern Sie sich an den Socket, der auf dem Verbindungspool basiert, den wir gestern gelernt haben. Die wichtigsten Punkte in seinem Prinzip sind wie folgt: Der Server öffnet eine begrenzte Anzahl von PooledConnectionHandler-Threads, um Verbindungen zu verarbeiten pool (eigentlich linklist() Object); Sobald der PooledConnectionHandler eine Verbindungsanforderung im Verbindungspool findet, beginnt er sofort mit der Verarbeitung derselben Grundlegende Inhalte zur Java-Programmierung sind fast fertig. Jetzt ist es an der Zeit, das Gelernte anzuwenden. Wenn Sie wirklich mit der Programmierung beginnen möchten, sollten Sie dies tun 🎜>
Bevor ich ein Tetris-Spiel in C++ programmiert habe, habe ich das Gefühl, dass die Programmierung dieses Spiels objektorientiertes Denken verkörpern kann und dass jeder es kopieren kann Ich habe es sowieso schon wieder vergessen, es ist an der Zeit, die Vergangenheit Revue passieren zu lassen und etwas Neues zu lernen. Dann kompilieren Sie einfach eine Online-Version Das Programm erfordert eine grafische Benutzeroberfläche (GUI), und das früher kompilierte Programm. Unter Java-Programmen implementiert nur das Applet-Programm eine grafische Benutzeroberfläche. Dies erfolgt jedoch mit Hilfe von AppletViewer oder einem Browser. Wir müssen die Frame-Klasse verwenden. Die Frame-Klasse ist eine Unterklasse von ist das grundlegende Fenster der grafischen Benutzeroberfläche. Nachdem Sie das folgende kleine Programm gelesen und implementiert haben, können Sie die grafische Benutzeroberfläche unten grundsätzlich verstehen Java.
Dateiname: FrameMemo.java
Funktion: Öffnen Sie einen Rahmen mit einem Menü und zeigen Sie Informationen im Rahmen an, und das Programm wird beendet import java.awt.*;
public class FrameMemo erweitert Frame
{
public String motd;
public FrameMemo(String s)
{
super( s);//super stellt hier die übergeordnete Klasse dar, und Dies entspricht der durch this dargestellten Klasse. Was hier also aufgerufen wird, ist der Konstruktor der übergeordneten Klasse
motd=s;
resize(300,300);
SetMenu();
}
public FrameMemo()//Überladener Konstruktor
{
this("This is a Memo of Frame");//Was hier aufgerufen wird, ist der FrameMemo(S)-Konstruktor
SetMenu();
}
public void SetMenu()
{
Menu m,n;
m=new Menu("Examples ");
m.add(new MenuItem(" Basic"));
m.add(new MenuItem("Simple"));
n=new Menu("Weitere Beispiele" );
n.add(new MenuItem("Sub Basic"));
m.add(n);
MenuBar mb=new MenuBar();
mb.add( m);
setMenuBar(mb);
}
public void paint(Graphics g)
{
g.drawString(motd,15,15);
g .drawString("Zum Beenden irgendwo klicken",45,45) ;
}
public void start()
{
show();
}
public boolean mouseDown(Event e,int x, int y)
{
hide();//Fenster ausblenden
dispose();//Ressourcen freigeben
System.exit( 0);
return false;
}
public static void main(String args[])
{
FrameMemo m;
m=new FrameMemo();
m.start();
}
}
Nachdem wir das Fenster erstellt haben, müssen wir auch verschiedene grafische Schnittstellenobjekte im Fenster platzieren, das heißt, das Prinzip von Das Layout wurde bereits eingeführt. Wir müssen einen Layout-Container verwenden und ihn dann nach bestimmten Regeln ausfüllen. Das folgende Beispiel zeigt die meisten Container, die wir verwenden müssen, um mir schnell zu helfen Finden Sie verlorene Erinnerungen, wenn ich in Zukunft die Java-Syntax vergesse 🎜>import java.applet.*;
public class Layout erweitert Frame
{
Panel fnames,styles;//Platzieren Sie die beiden Schriftartschaltflächen in den Panel fnames und die drei Stilschaltflächen in Bedienfeldstile
Schaltfläche ohne Serifen;
Schaltfläche fett, größer, kleiner;//Definieren Sie zwei Schriftartschaltflächen und drei Stilschaltflächen
SampleCanvas-Beispiel;//Definieren Sie das überladene Canvas-Objekt
String fName=new String("SansSerif ");
int fBold=0;
int fSize=12;
public Layout(){
super("A Memo of Layout");
setFont(new Font ("Sans",Font.BOLD,12));
setLayout(new BorderLayout());//Setzen Sie das BorderLayout-Layout. Diese Methode kann fünf Elemente anordnen
file://Die Ausrichtung ist Osten, Westen, Süden, Norden, Mitte
file://Das folgende Programm dient zum Festlegen der beiden Schaltflächen unten oder Süden
fnames=new Panel();
fnames.setLayout (new GridLayout(1,2,5,10)) ;//Legen Sie das GridLayout-Layout für das Panel fest
file://Das Layout ist ein Rasterlayout
file://Die vier Parameter sind
file://Anzahl der Zeilen, Anzahl der Spalten, horizontaler Abstand (Pixel), vertikaler Abstand (Pixel)
sans=new Button("Sans Serif");
fnames.add(sans);
serif=new Button("Sans Serif");
fnames. add(serif); file://Füge jeweils zwei Schaltflächen hinzu
add(fnames, "South"); im BorderLayout-Layout
file:// Das folgende Programm setzt die drei Schaltflächen links oder westlich
styles=new Panel();
styles.setLayout(new GridLayout(3,1,10 ,5));
bold=neuer Button ("Fett");
styles.add(bold);
bigger=neuer Button("bigger");
styles.add(bigger) ;
smaller=new Button("Smaller" );
styles.add(smaller);
add(styles,"West");
sample=new SampleCanvas();
add(sample,"Center");
setSize(200,200);//Diesen Satz nicht verpassen
// setVisible(true);
}
public void start(){
show();
}
public static void main(String[ ] args)//Initialization
{
Layout MainFrame=new Layout();
MainFrame.start();
}
class SampleCanvas erweitert Canvas
{
String message;
public SampleCanvas() file://Konstruktor der Klasse
{
rewrite("SanSerif"); wird nur beim Erstellen des Objekts ausgeführt . Java unterstützt keinen Destruktor
}
public void rewrite(String s)
{
setFont(new Font(fName,fBold,fSize));
message="This Schriftart ist"+fName;
repaint();
}
public void paint(Graphics g)
{
g.drawString(message,10,50);
}
}
}
(28. Januar) In der Online-Version des Tetris-Programms sollten die folgenden Klassen enthalten sein:
1.MainFrame: Hauptschnittstellenklasse, In Fortsetzung von Frame lauten die grundlegenden Definitions- und Methodenfunktionen in der Klasse wie folgt:
class MainFrame erweitert Frame{
public MainFrame(){//Initialisierungsarbeit, hauptsächlich zum Anordnen von Objekten (Schaltflächen, Leinwand, usw.)
}
public boolean keyDown(Event e,int key){//Tastaturoperationen verarbeiten
}
public boolean action(Event e,Object arg){//Mausoperationen verarbeiten
}
public void start(){//Sehen Sie sich die Notizen der letzten Tage an
show();
}
public static void main(String args[]) throws IOException{
MainFrame app;
app=new MainFrame();
app.start();
}
2. Dieses Canvas-Objekt vervollständigt alles logische Operationen im Zusammenhang mit dem Quadrat, Fahren Sie mit der Canvas-Klasse fort
3. Blockklasse, d. h. die Blockklasse speichert Informationen über die Form des Blocks (ein mehrdimensionales Array) usw. Diese Klasse wird die MainCanvas-Klasse ergänzen. Sie kann auch in einer Klasse mit MainCanvas verwendet werden, wie es in meiner ursprünglichen C++-Version der Fall war Teilen Sie es in zwei Klassen.
4. ClientThread-Klasse, die die Thread-Klasse des Clients ist
5 und ClientThread sind für den Netzwerksynchronisierungsvorgang verantwortlich
Nachdem ich diesen Teil der Arbeit analysiert habe, ist die Arbeit im Wesentlichen abgeschlossen. Ich habe beschlossen, den Plan zur Implementierung der Online-Version von Tetris aufzugeben, da es sehr langweilig ist, ihn zu wiederholen Die Ideen, mit denen ich sehr vertraut war, werden mich auf die Implementierung eines elektronischen Whiteboards auf Basis von Java Applet konzentrieren. Die entsprechende Forschung werde ich nach dem Jahr durchführen > Die Anfängernotizen, die einen halben Monat gedauert haben, sind endlich vorbei. 15 Tage reichen für den Einstieg in jede Sprache. Schließlich sollte die Sprache nur das Design verkörpern, und die Verwendung eines Tools sollte nicht zu viel Zeit in Anspruch nehmen Die Verwendung von Werkzeugen zum Erstellen wunderschöner Kunstwerke sollte immer im Kopf sein.
Beim Einstieg in Java gibt es drei Bücher, die mir sehr geholfen haben Das erste ist „Java Concise Tutorial“ von Machinery Industry Press, geschrieben von einem Briten. Die Sprache im Buch ist klar und einfach und ermöglicht es Ihnen, die Grundlagen zu verstehen Es gibt mir das Gefühl, dass Ausländer sehr gut darin sind, die grundlegendsten und tiefgreifendsten technischen Lehrbücher zu schreiben Der Inhalt ist relativ vollständig, Think in Java im CHM-Format, was mir geholfen hat, Java besser zu verstehen, insbesondere die Threading- und Synchronisationsaspekte. Darüber hinaus stammen alle von mir zitierten Bücher aus einer Reihe von Lehrmaterialien zum Schreiben von Socket-Programmen in Java.
Nun, ich wünsche meinen CDSN-Freunden ein frohes neues Jahr! : Download-Adresse
1. Buchtitel: Java Socket 101
Hinweis: In diesem Tutorial erfahren Sie, was ein Socket ist und wie Sie ihn in einem Java-Programm verwenden. Durch die Untersuchung mehrerer praktischer Beispiele, von einer einzelnen Client/Server-Kommunikation bis hin zu einem Pool von Clients, die auf einen Server zugreifen, erfahren Sie, wie Sie Sockets verwenden, um typische Situationen in der realen Welt zu bewältigen.
URL: http://www-900.ibm.com/developerWorks/cn/edUCation/java/j-sockets/tutorial/j-sockets.zip
2 (Chinesische Version) ---chm-Format
URL: http://www.code-labs.com/manual/Think%20In%20Java.chm
Aktuell gültig
Die Oben finden Sie den Inhalt des Memos (10) für Anfänger, die Java lernen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).