# Mini-Programmcodes



## StarSeven (10. Sep 2003)

Hy, ich würde gerne einen Beitrag haben wo wir immer ganz kleine Programmcodes reinschreiben in welchen immer z.B. ein Befehl erklärt wird, oder wie man in eine Datei schreibt.
Dies fände ich praktisch da man dadurch immer nebenbei leicht was neues lernen kann ohne es zwangsweise zu lernen wenn man es gerde braucht. Da ich leider noch nicht sehr viel mit Java machen kann werde ich nichts sehr besonderes hinzufügen können, werde mit jedoch bemühen dies so schnell wie möglich zu ändern ^^.
Ich fang dann mal gleich an:

*Tooltips*
Tooltips sind die Teile welche auftauchen wenn man z.B. auf ein Button geht und dann ein Text erscheint der die Funktion erklärt.
Mein Code:

```
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Tooltip {

	public static void main(String args[]) {
		Tooltip myTooltip = new Tooltip();
		myTooltip.tt();

	}

	public void tt() {
		JFrame myFrame = new JFrame("Tooltip");
		JPanel myPanel = new JPanel();
		JButton myButton = new JButton("Ich besitze einen Tooltip :-)");

		/* In den folgenden zwei Zeilen wird die 
		 * Bildschirmauflösung ermittelt.*/
		Toolkit toolkit = Toolkit.getDefaultToolkit();
		Dimension d_aufloesung = toolkit.getScreenSize();

		/* Die Bildschirmauflösung wird durch zwei 
		 * geteilt womit man genau die Mitte des Bildschirm 
		 * herausbekommt, dann wird die Größe des Frames 
		 * abgezogen wodurch das Frame genau in der Mitte des 
		 * Bildschirms landet.*/
		myFrame.setLocation(
			d_aufloesung.width / 2 - 200,
			d_aufloesung.height / 2 - 75);
		myFrame.setSize(200, 75);
		myFrame.getContentPane().add(myPanel);
		myPanel.add(myButton);
		/* In der folgenden Zeile wird an unserem Button 
		 * mittels des Befehles "setToolTipText()" der Tooltip 
		 * hinzugefügt*/
		myButton.setToolTipText("Hier könnte ihr Tooltip stehen :-)");
		myFrame.setVisible(true);

		/* Nun bringen wir noch einen Action Listener an 
		 * unserem Button an damit auch etwas passiert wenn 
		 * er angeklickt wird*/
		myButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
				button_pressed();
			}
		});
	}

	/* Diese Methode wird aufgerufen wenn der Button 
	 * angeklickt wurde, mittels "System.exit(0);" wird das 
	 * Programm dann beendet*/
	public void button_pressed() {
		System.exit(0);
	}
}
```

*Shortcuts*
Und jetzt noch ein Programm was erklärt wie man an ein beispielsweise Button ein Shortcut anhängt d.h. man muss Alt + einen bestimmten Buchstaben drücken damit das dazugehörige Buttonevent ausgelöst wird.

Mein Code:

```
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Shortcut {
	public static void main(String args[]) {
		Shortcut myShortcut = new Shortcut();
		myShortcut.st();
	}

	public void st() {
		JFrame myFrame = new JFrame("Tooltip");
		JPanel myPanel = new JPanel();
		JButton myButton = new JButton("Exit");

		/* In den folgenden zwei Zeilen wird die 
		 * Bildschirmauflösung ermittelt.*/
		Toolkit toolkit = Toolkit.getDefaultToolkit();
		Dimension d_aufloesung = toolkit.getScreenSize();

		/* Die Bildschirmauflösung wird durch zwei 
		 * geteilt womit man genau die Mitte des Bildschirm 
		 * herausbekommt, dann wird die Größe des Frames 
		 * abgezogen wodurch das Frame genau in der Mitte des 
		 * Bildschirms landet.*/
		myFrame.setLocation(
			d_aufloesung.width / 2 - 200,
			d_aufloesung.height / 2 - 75);
		myFrame.setSize(200, 75);
		myFrame.getContentPane().add(myPanel);
		myPanel.add(myButton);
		/* In der folgenden Zeile wird an unserem Button 
		 * mittels des Befehles "setMnemonic()" der Shortcut 
		 * hinzugefügt*/
		myButton.setMnemonic('x');
		myFrame.setVisible(true);

		/* Nun bringen wir noch einen Action Listener an 
		 * unserem Button an damit auch etwas passiert wenn 
		 * er "aktiviert" wird*/
		myButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
				button_pressed();
			}
		});
	}

	/* Diese Methode wird aufgerufen wenn der Button 
	 * "aktiviert" wurde, mittels "System.exit(0);" wird das 
	 * Programm dann beendet*/
	public void button_pressed() {
		System.exit(0);
	}
}
```


----------



## StarSeven (10. Sep 2003)

Ich kann ja auch gleich mein erst vor kurzem erworbenes Wissen über den...

*CaretListener*
hinschreiben ^^.
Soweit ich nun weiss ist er dazu da um auf etwas zu reagieren wenn etwas wo verändert wurde.

mein Code dazu:

```
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;

public class caret implements CaretListener {

	JTextField myTextField = new JTextField();

	public static void main(String args[]) {
		caret caretListener = new caret();
		caretListener.cl();

	}

	public void cl() {
		JFrame myFrame = new JFrame("CaretListener");
		JPanel myPanel = new JPanel();
		/*Hier sehen sie das sie innerhalb eines Labels 
		 * HTML-Tags benutzen können um Zeilenumbrüche zu 
		 * erzeugen*/
		JLabel myLabel =
			new JLabel("<html><head></head><body>Wenn sie das Programm
beenden wollen, schreiben
Sie etwas in das Textfeld</body></html>");

		/* In den folgenden zwei Zeilen wird die 
		 * Bildschirmauflösung ermittelt.*/
		Toolkit toolkit = Toolkit.getDefaultToolkit();
		Dimension d_aufloesung = toolkit.getScreenSize();

		/* Die Bildschirmauflösung wird durch zwei 
		 * geteilt womit man genau die Mitte des Bildschirm 
		 * herausbekommt, dann wird die Größe des Frames 
		 * abgezogen wodurch das Frame genau in der Mitte des 
		 * Bildschirms landet.*/
		myFrame.setLocation(
			d_aufloesung.width / 2 - 300,
			d_aufloesung.height / 2 - 200);
		myFrame.setSize(300, 200);
		myFrame.getContentPane().add(myPanel);
		myPanel.setLayout(new BorderLayout());
		myPanel.add("Center", myLabel);
		myPanel.add("South", myTextField);

		myFrame.setVisible(true);

		//dem Text Feld wird ein CaretListener hinzugefügt
		myTextField.addCaretListener(this);

	}

	/* Die Methode caretUpdate wird aufgerufen wenn etwas beim 
	 * Textfeld hineingeschrieben wurde, dann wird durch 
	 * System.exit(0) das Programm beendet.*/

	public void caretUpdate(CaretEvent e) {
		System.exit(0);

	}

}
```


----------



## g2610 (21. Jun 2007)

Wenn ihr ein Frame in die Mitte des Bildschirms setzen wollt, dann braucht ihr nicht eine Berechnung und ne Toolkitabfrage. Ist viel zu kompliziert!!!

macht einfach: frame.setLocationRelativeTo(null);


----------



## byte (21. Jun 2007)

http://www.java2s.com/


----------

