Posted: Oktober 9th, 2014 | Filed under: LaTeX, Tutorials | Tags: Beispiel, Dateibaum, dirtree, Example, Hilfe, LaTeX, offset, Tutorial, width | No Comments »
Mit Hilfe des Paketes dirtree könnt ihr schnell und einfach Baumstrukturen, wie man sie aus Datei-Browsern kennt, in LaTeX realisieren. Beim dirtree-Element gibt es mehrere Parameter, welche ihr über den Befehl \DTsetlength einstellen könnt:
Standardwerte
- offset: 0.2em
- width: 1em
- sep: 0.2em
- rule-width: 0.4pt
- dot-size: 1.6pt
Ausgabe
Beispiel
Wichtig! Achtet auf das korrekte Setzen der Punkte zu Beginn und am Ende jedes Elementes.
\usepackage{dirtree}
…
\begin{figure}[H]
\DTsetlength{0.2em}{3em}{0.2em}{0.4pt}{2.6pt}
\dirtree{%
.1 /.
.2 children.
.3 child$_1$.
.4 id.
.4 url.
.4 title.
.4 link text.
.4 beautiful html.
.4 children.
.3 ….
.3 child$_n$.
}
Quelle: http://www.tex.ac.uk/ctan/macros/generic/dirtree/dirtree.pdf
Posted: Dezember 21st, 2012 | Filed under: Java, Programmieren | Tags: Beispiel, Countdown, Example, Java, Swing, Timer, Tutorial | 12 Comments »
Häufig benötigt man für Applikationen einen Zeitnehmer, oder es soll ein bestimmtes Event nach einer gewissen Zeit ausgeführt werden. Mit Hilfe der Klasse Timer aus der Swing-Bibliothek kann ein sogenannter Countdown leicht erstellt werden. Das folgende Beispiel veranschaulicht die Realisierung eines Countdowns.
Screenshot
Quellcode
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.Timer; import javax.swing.WindowConstants; public class Countdown extends JFrame { // Countdown mit 42 Sekunden public static int counterValue = 42; public static Timer timer; public static JLabel label; public Countdown() { initGUI(); } // GUI-Erzeugen private void initGUI(){ BorderLayout thisLayout = new BorderLayout(); this.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); this.getContentPane().setLayout(thisLayout); label = new JLabel(); label.setText(String.valueOf(counterValue)); this.getContentPane().add(label, BorderLayout.CENTER); this.setTitle("Countdown Example"); this.pack(); this.setVisible(true); } public static void main(String[] args) { // GUI erzeugen Countdown countdown = new Countdown(); // Timer erzeugen, jede 1000 Millisekunden (= 1 Sekunde) // Methode actionPerformed aufrufen. Countdown.timer = new Timer(1000, new ActionListener() { public void actionPerformed(ActionEvent e) { // 1 Sekunde abziehen Countdown.counterValue--; // Zahl in Label darstellen Countdown.label.setText(String.valueOf(counterValue)); // Falls Zähler = 0, Countdown abgelaufen! if(Countdown.counterValue == 0){ System.out.println("Counterdown ausgelaufen!"); // Timer stoppen Countdown.timer.stop(); } } }); // Timer starten timer.start(); } } |
In der Klasse Timer kann im Konstruktor ein Zeitwert und ein Listener übergeben werden. Die actionPerformed-Methode dieses Listeners wird, nachdem der Timer gestartet wurde, alle 1000 ms (=1 s), aufgerufen. Die Methode actionPerfomed ist also unser Taktgeber beim Abziehen einer Sekunde von der aktuellen Countdown-Zahl. Erreicht unsere Zahl den Wert 0, ist der Countdown schließlich abgelaufen.
Posted: Mai 16th, 2012 | Filed under: Allgemein, Java, Programmieren, Tutorials | Tags: ActionListener, Beispiel, Button, Example, Java, JButton, Swing, Tutorial | No Comments »
Hier ein kleines Beispiel für alle Java Swing Neulinge. Mit Hilfe eines ActionListeners könnt ihr Klicks auf einen JButton abfangen. Funktioniert natürlich auch, falls ihr die Schaltfläche mit der Tastatur auslöst (zum Beispiel bei Focus mit Hilfe der Leertaste).
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class JButtonExample implements ActionListener{
private JButton button;
public JButtonExample() {
// Fenster anlegen
JFrame frame = new JFrame();
frame.setTitle("JButton Example");
frame.setLayout(new BorderLayout());
// Button anlegen
this.button = new JButton("OK");
// Eventhandler für Button zuweisen
this.button.addActionListener(this);
// Button der Frame hinzufügen
frame.add(this.button);
// Fenster zentrieren
frame.setSize(350,150);
frame.setLocationRelativeTo(null);
// Fenster sichbar machen
frame.setVisible(true);
}
public static void main(String[] args) {
new JButtonExample();
}
@Override
public void actionPerformed(ActionEvent e) {
if(button == e.getSource()){
System.out.println("Button wurde geklickt!");
}
}
} |
Ich hoffe ich konnte dem ein oder anderen mit diesem Tutorial helfen =)
Posted: Juni 21st, 2011 | Filed under: Java, Programmieren | Tags: Beispiel, chat, Example, Java, Mulitcast, MulticastSocket, network, Netzwerk Nachricht, senden, Socket, Tutorial | 2 Comments »
Als ich meinen Netzwerk-Chat jLanChat programmiert habe, musste ich mich intensiv mit diesem Thema beschäftigen. Herkömmlicherweise verwendet man zum versenden von Nachrichten das sogenannte Client-Server Prinzip. Will zum Beispiel PC1 eine Nachricht an PC2 senden so muss PC2 einen Socket öffnen mit dem sich PC1 dann verbindet und über diesen Socket die Nachricht sendet. Will man nun eine Nachrichtenleitung mit mehren PCs aufbauen so benötigt man schnell einen Server, mit dem sich dann alle Clients verbinden und über diesen dann kommunizieren.
Wenn wir die Kommunikation über Multicast (Punkt zu Gruppe) tätigen brauchen wir keinen Server. Denn fast alle Router/Switches unterstützen Multicast.
Alle Teilnehmer verbinden sich mit dem Switch/Router und treten einer Gruppe, in Form einer IP-Adresse und eines Ports (z.B.: 230.0.0.1:4447), bei. Bekommt der Switch/Router jetzt eine Nachricht eines Clients mit der Gruppen-Adresse als Zieladresse vervielfältigt der Switch/Router diese Nachricht und sendet sie an alle die der Gruppe beigetreten sind, auch an den der die Nachricht abgesendet hat. So kann man zum Beispiel einen serverlosen Chat aufbauen. Wenn man’s genau nimmt übernimmt der Switch/Router jetzt unsere Serverfunktion.
Um das Ganze in JAVA zu realisieren muss man folgende Bibliothek ins Projekt einbinden: http://commons.apache.org/lang/
Hier unser Beispiel, Es gibt eine Sender-Klasse und eine Empfänger-Klasse:
Sender
import java.io.IOException; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.MulticastSocket; public class Sender { public static void main(String[] args) { // Netzwerk-Gruppe String NETWORK_GROUP = "230.0.0.1"; // Netzwerk-Gruppen Port int NETWORK_GROUP_PORT = 4447; // Client-Port int CLIENT_MULTICAST_PORT = 4446; // Nachrichten-Codierung String TEXT_ENCODING = "UTF8"; try { MulticastSocket socket = new MulticastSocket(CLIENT_MULTICAST_PORT); byte[] message = "Hallo Welt".getBytes(TEXT_ENCODING); // Nachricht an Gruppe senden socket.send(new DatagramPacket(message, message.length , InetAddress.getByName(NETWORK_GROUP) , NETWORK_GROUP_PORT)); } catch (IOException e) { e.printStackTrace(); } } } |
Empfänger
import java.io.IOException; import java.net.DatagramPacket; import java.net.InetAddress; import java.net.MulticastSocket; public class Receiver { public static void main(String[] args) { // Netzwerk-Gruppe String NETWORK_GROUP = "230.0.0.1"; // Netzwerk-Gruppen Port int NETWORK_GROUP_PORT = 4447; // Nachrichten-Codierung String TEXT_ENCODING = "UTF8"; InetAddress group; MulticastSocket socket; try { // Gruppe anlegen group = InetAddress.getByName(NETWORK_GROUP); socket = new MulticastSocket(NETWORK_GROUP_PORT); // Gruppe beitreten socket.joinGroup(group); byte[] bytes = new byte[65536]; DatagramPacket packet = new DatagramPacket(bytes, bytes.length); while(true){ // Warten auf Nachricht socket.receive(packet); String message = new String(packet.getData(),0,packet.getLength(), TEXT_ENCODING); System.out.println(message); } } catch (IOException e) { e.printStackTrace(); } } } |
Ich hoffe ich konnte dem ein oder anderen damit helfen.
Das ganze könnt ihr euch als Eclipse Projekt hier herunterladen (inklusive Bibliotheken): Eclipse Projekt – Tutorial Net Send
Posted: Mai 13th, 2011 | Filed under: Programmieren | Tags: Beispiel, code, Example, PHP, redirect, Weiterleitung | No Comments »
Oft braucht man bei einer PHP-Webanwendungen Weiterleitungen, zum Beispiel bei einem Login-System.
Hier das Codebeispiel:
Header("Location: login.php");