Aus Applikation ein Applet machen

Jomama09

Aktives Mitglied
Hallo Leute ,

ich habe eine kleine Applikation die ich in meinem Studium erstellt habe.
Jetzt wollte ich daraus ein Applet machen, aber kriege es einfach nicht hin.
Wäre Super wenn es hier einen Experten gibt der mir das kleine Programm umstellen könnte.
Den Code füge ich noch mit ein. Hatte auch ppar Tips bekommen, trotzdem habe ich es einfach nicht hinbekommen. ;(
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.AbstractAction;
import javax.swing.ImageIcon;
import javax.swing.JColorChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;

public class MiniMalGui extends JFrame{
	//automatisch über Eclipse ergänzt
	private static final long serialVersionUID = -2569945475900192306L;
	
	//für die Anzeige
	private MiniMalBildPanel mausPanel;
	//für die Position
	private int xPos, yPos;
	//für das Werkzeug
	private int werkzeug;
	
	//für die Aktionen
	private MeineAktionen beendenAct, rectAct, kreisAct, linieAct, farbeAct;
	
	//eine innere Klasse für die Aktionen
	class MeineAktionen extends AbstractAction {
		//automatisch über Eclipse ergänzt
		private static final long serialVersionUID = 1375901955180795320L;

		//der Konstruktor
		public MeineAktionen(String text, ImageIcon icon, String beschreibung, KeyStroke shortcut, String actionText) {
			//den Konstruktor der übergeordneten Klasse mit dem Text und dem Icon aufrufen
			super(text, icon);
			//die Beschreibung setzen für den Bildschirmtipp
			putValue(SHORT_DESCRIPTION, beschreibung);
			//den Shortcut
			putValue(ACCELERATOR_KEY, shortcut);
			//das ActionCommand
			putValue(ACTION_COMMAND_KEY, actionText);
		}
		
		@Override
		public void actionPerformed(ActionEvent e) {
			if (e.getActionCommand().equals("beenden"))
				beenden();
			if (e.getActionCommand().equals("rechteck"))
				werkzeug = 1;
			if (e.getActionCommand().equals("kreis"))
				werkzeug = 2;
			if (e.getActionCommand().equals("linie"))
				werkzeug = 3;
			if (e.getActionCommand().equals("farbauswahl"))
				farbDialogZeigen();
		}
	}
	
	//die innere Klasse für die Mausereignisse
	//Sie wird von der Klasse MouseAdapter abgeleitet
	//wir brauchen nur das Drücken und Loslassen
	class MeinMausListener extends MouseAdapter {
		@Override
		public void mousePressed(MouseEvent e) {
			super.mousePressed(e);
			//die Koordinate als Startpunkt speichern
			//aber nur, wenn die linke Maustaste gedrückt wurde
			if (e.getButton() == MouseEvent.BUTTON1) {
				xPos = e.getX();
				yPos = e.getY();
			}
		}

		@Override
		public void mouseReleased(MouseEvent e) {
			super.mouseReleased(e);
			//wenn die linke Taste losgelassen wird, zeichnen wir von der alten 
			//zur aktuellen Position 
			//je nach Werkzeug wird etwas anders gezeichnet
			if (e.getButton() == MouseEvent.BUTTON1) {
				//ein Rechteck
				if (werkzeug == 1)
					mausPanel.rechteck(xPos, yPos, e.getX()-xPos, e.getY() - yPos);
				//ein Kreis
				if (werkzeug == 2)
					mausPanel.kreis(xPos, yPos, e.getX()-xPos, e.getY() - yPos);
				//die Linie
				if (werkzeug == 3)
					mausPanel.linie(xPos, yPos, e.getX(), e.getY());
			}
		}
	}

	//der Konstruktor
	public MiniMalGui(String titel) {
		super(titel);
		//wir nehmen ein Border-Layout
		setLayout(new BorderLayout());
		beendenAct = new MeineAktionen("Beenden", null, "", null, "beenden");
		rectAct = new MeineAktionen("Rechteck", new ImageIcon("icons/rect24.gif"), "Zeichnet ein Rechteck", null, "rechteck");
		kreisAct = new MeineAktionen("Kreis", new ImageIcon("icons/circle24.gif"), "Zeichnet einen Kreis", null, "kreis");
		linieAct = new MeineAktionen("Linie", new ImageIcon("icons/line24.gif"), "Zeichnet eine Linie", null, "linie");
		farbeAct= new MeineAktionen("Farbauswahl", new ImageIcon("icons/color24.gif"), "Öffnet einen Dialog zur Farbauswahl", null, "farbauswahl");
		
		//das Werkzeug ist 1 - also das Rechteck
		werkzeug = 1;
		
		//die Menuleiste erstellen und einfügen
		menu();
		
		//die Symbolleiste oben einfügen
		add(symbolleiste(), BorderLayout.NORTH);
		//ein neues Panel mit dem Bild
		mausPanel = new MiniMalBildPanel();
		//das Panel mit dem Listener verbinden
		mausPanel.addMouseListener(new MeinMausListener());
		//das Panel in der Mitte einfügen
		add(mausPanel, BorderLayout.CENTER);

		//anzeigen, Größe setzen und Standard-Verhalten festlegen
		setSize(810,680);
		setResizable(false);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
	
	//die Methode erzeugt das Menü
	private void menu() {
		JMenuBar menue = new JMenuBar();

		//das Menü Datei
		JMenu dateiMenue = new JMenu("Datei");
		//der Eintrag Beenden
		JMenuItem dateiBeenden = new JMenuItem();
		//die Action setzen
		dateiBeenden.setAction(beendenAct);
		//den Eintrag hinzufügen
		dateiMenue.add(dateiBeenden);
		
		//das gesamte Menü hinzufügen
		menue.add(dateiMenue);
		this.setJMenuBar(menue);
	}
	
	//die Methode erzeugt die Symbolleiste
	private JToolBar symbolleiste() {
		JToolBar leiste = new JToolBar();

		//die Symbole für die Figuren
		leiste.add(rectAct);
		leiste.add(kreisAct);
		leiste.add(linieAct);
		
		leiste.addSeparator();
		
		//für die Farbauswahl
		leiste.add(farbeAct);
	
		//die komplette Leiste zurückgeben
		return (leiste);
	}

	//die Methode beendet nach einer Rückfrage die Anwendung
	private void beenden() {
		if(JOptionPane.showConfirmDialog(this, "Sind Sie sicher?","Anwendung schließen", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION)
			System.exit(0);
	}
	
	//die Methode ruft einen Dialog zur Farbauswahl auf und setzt die neue Farbe
	//über die Klasse des Panels mit der Grafik
	private void farbDialogZeigen() {
		//zum Zwischenspeichern
		Color tempFarbe;
		//den Farbauswahl-Dialog anzeigen und die Auswahl ablegen
		tempFarbe = JColorChooser.showDialog(this, "Bitte wählen Sie eine Farbe", Color.BLACK);
		//wurde etwas ausgewählt?
		//dann die Farbe neu setzen
		if (tempFarbe != null)
			mausPanel.farbeSetzen(tempFarbe);
	}
}
Java:
package de.fernschulen.minimal;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;

import javax.swing.JPanel;
import javax.swing.border.BevelBorder;

public class MiniMalBildPanel extends JPanel {
	//automatisch über Eclipse ergänzt
	private static final long serialVersionUID = 4141971349064683906L;
	//für das Bild
	private BufferedImage bild;
	//für die Farbe
	private Color farbe;
	
	//der Konstruktor
	public MiniMalBildPanel() {
		setSize(800,600);
		//einen Rahmen zeichnen
		setBorder(new BevelBorder(BevelBorder.LOWERED));
		//ein neues Bild in der Größe des Panels erzeugen
		//als Typ verwenden wir INT_RGB
		bild = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB);
		//den Grafik-Kontext beschaffen 
		Graphics g = bild.getGraphics();
		//ein weißes Rechteck in der Größe des Bildes zeichnen, damit der Hintergrund weiß ist
		g.setColor(Color.WHITE);
		g.fillRect(0, 0, getWidth(), getHeight());
		//den Grafik-Kontext wieder freigeben
		g.dispose();
		//die Standard-Farbe ist Schwarz
		farbe = Color.BLACK;
	}
	
	//die überladenen Methode zum Zeichnen der Komponente
	@Override
	public void paintComponent(Graphics g) {
		//die Methode der übergeordneten Klasse aufrufen
		super.paintComponent(g);
		//das Bild zeichnen
		g.drawImage(bild, 0, 0, this);
	}

	//die Methode zeichnet ein Rechteck
	//die Koordinaten, Breite und Höhe werden als Parameter übergeben
	public void rechteck(int x1, int y1, int breite, int hoehe) {
		//den Grafik-Kontext beschaffen
		Graphics g = bild.getGraphics();
		//die Farbe setzen
		g.setColor(farbe);
		//die Figur zeichnen
		g.drawRect(x1, y1, breite, hoehe);
		//den Grafik-Kontext freigeben
		g.dispose();
		//das Neuzeichnen anfordern
		repaint();
	}

	//die Methode zeichnet einen Kreis
	//die Koordinaten, Breite und Höhe des umgebenden Rechtecks werden als Parameter übergeben
	public void kreis(int x1, int y1, int breite, int hoehe) {
		//siehe rechteck()
		Graphics g = bild.getGraphics();
		g.setColor(farbe);
		g.drawOval(x1, y1, breite, hoehe);
		g.dispose();
		repaint();
	}
	
	//die Methode zeichnet eine Linie
	//Start- und Endpunkt werden als Parameter übergeben
	public void linie(int x1, int y1, int x2, int y2) {
		//siehe rechteck()
		Graphics g = bild.getGraphics();
		g.setColor(farbe);
		g.drawLine(x1, y1, x2, y2);
		g.dispose();
		repaint();
	}
	
	//die Farbe setzen
	public void farbeSetzen(Color farbe) {
		this.farbe = farbe;
	}
}

Wenn nötig würde ich auch ne kleinigkeit dafür Zahlen!
 

Jomama09

Aktives Mitglied
Ja haste recht, aber wusste nicht das sowas geht. Wollte auf den anderen Beitrag verlinken aber da wusste ich nicht wie das hier geht. Sonst hätte ich das so gemacht wie du das getan hast. Das reicht ja für die Sache die ich machen wollte.

Sorry wollte das Board nicht zumüllen.

Kommt nicht wieder vor.

Gruss Jupp
 

Atze

Top Contributor
verschieben können das nur die mods, aber verlinken ist simpel. link aus deiner adresseleiste kopieren, reinposten. hübsch machts das forum selbst. :)
 

Firestorm87

Bekanntes Mitglied
Danke für den Tip werde ich in Zukunft berücksichtigen.

Schade das anscheinend keiner Zeit / Lust hat mir zu helfen. ???:L

Ich weiß ja nicht genau, was du da versucht hast, aber mit folgenden Änderungen sollte das Applet zumindest laufen... kleines Feintuning sollte danach kein Problem sein:
Java:
public class MiniMalGui extends JFrame {
wird zu:
Java:
public class MiniMalGui extends JApplet {

Java:
public MiniMalGui(final String titel) {
super(titel);
wird zu:
Java:
public MiniMalGui() 
super()
da ein Applet keine Titelleiste besitzt.

und die beiden Zeilen einfach löschen:
Java:
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Dann lässt sich dein kleines Prog schonmal als Applet starten, wo ist also das große Problem?
Denn diese Änderungen bietet dir Eclipse alle schon automatisch an, wenn du oben Frame => Applet änderst....

Gruß
Firestorm
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ChackZz Applikation zu Applet umbauen Allgemeine Java-Themen 13
W Kleines Applet in Standard Java Applikation umwandeln Allgemeine Java-Themen 3
D Applet in Applikation einbinden? Allgemeine Java-Themen 4
C Türme von Hanoi-Umschreiben von Applet in Applikation, Rekur Allgemeine Java-Themen 2
T Applet <-> Applikation Allgemeine Java-Themen 4
O Maven ein externes jar laden ohne die Applikation neu zu kompilieren Allgemeine Java-Themen 4
OnDemand Anzeigen was eine Applikation macht Allgemeine Java-Themen 1
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
O Java-Applikation tut in Netbeans, als JAR nicht, wegen Pfadangaben einer benötigten Datei Allgemeine Java-Themen 8
L Java Applikation Web Anbindung Allgemeine Java-Themen 2
H OOP Setting(config) für Applikation sicheren? Allgemeine Java-Themen 9
L Übergabe an eine eher einfache Java- Applikation wegen Kündigung Allgemeine Java-Themen 1
OnDemand Desktop-Applikation schreiben, wie daten persistent? Allgemeine Java-Themen 9
B Applikation ohne (direkt)Java installiert zu haben auszuführen Allgemeine Java-Themen 8
T Datei öffnen mit eigener Applikation.exe Allgemeine Java-Themen 4
D Methoden Java Applikation Die System Auslastung optimieren ? Allgemeine Java-Themen 7
P Java Applikation mit Webinterface Allgemeine Java-Themen 1
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
B Best Practice Start-Applikation mit Logger? Allgemeine Java-Themen 3
J java-applikation-1.jar soll java-applikation-2 aufrufen.jar Allgemeine Java-Themen 5
O Interpreter-Fehler WebStart-Applikation startet nicht Allgemeine Java-Themen 5
S Java Applikation zu autostart hinzufügen Allgemeine Java-Themen 7
B JUnit und mehrere Instanzen der selben Applikation Allgemeine Java-Themen 4
S Perfomance Problem mit Java Applikation Allgemeine Java-Themen 4
MrGe Java-Applikation und OpenOffice/UNO Allgemeine Java-Themen 2
F Parameter für Java Applikation per xml ins Meta-inf speichern? Allgemeine Java-Themen 3
C Java Applikation Benutzerkontrolle Allgemeine Java-Themen 3
S Profiler-Funktionen in eigener Applikation nutzen..? Allgemeine Java-Themen 5
S Java Webstart Applikation in den Autostart? Allgemeine Java-Themen 3
T Gewährleisten das Applikation läuft!? Allgemeine Java-Themen 2
X Aus Java Applikation externes Programm starten Allgemeine Java-Themen 3
R JAR-Update in laufender Applikation Allgemeine Java-Themen 9
$ Applikation(Left for Dead) mit Parametern Starten Allgemeine Java-Themen 5
D Jython in Applikation einbinden Allgemeine Java-Themen 3
O Applikation über java steuern Allgemeine Java-Themen 11
T Applikation für RGB LED Matrix Allgemeine Java-Themen 7
PAX Applikation sich selbst neu starten lassen Allgemeine Java-Themen 27
Q daten propertie datei aus anderer applikation Allgemeine Java-Themen 6
M Beenden einer externen Java-Applikation Allgemeine Java-Themen 11
H Php Script aus Java Applikation starten Allgemeine Java-Themen 2
B Browser link aus Java-Applikation öffnen Allgemeine Java-Themen 2
A Setup von einer Java-Applikation starten Allgemeine Java-Themen 4
B Java Applikation incl. dll unter Linux ausführen? Allgemeine Java-Themen 11
M Nur eine laufende Applikation erlauben? Allgemeine Java-Themen 12
M Textfenster von fremder Applikation lesen Allgemeine Java-Themen 5
M wav in Applikation abspielen Allgemeine Java-Themen 2
mabu MediaCenter Applikation in Java realistisch oder nicht? Allgemeine Java-Themen 11
J Merkwürdiger Fehler: Applikation hängt einfach, Quartz-bug? Allgemeine Java-Themen 6
E NT-Anmeldung in Java Client-Applikation nutzen. JAAS ? Allgemeine Java-Themen 5
P DB-Applikation mit GWT-Frontend Allgemeine Java-Themen 3
D Startverhalten Java-Applikation Allgemeine Java-Themen 7
A Java-Applikation auf einem anderen Rechner starten Allgemeine Java-Themen 17
D Plattformunabhängiges ausführbare Java-Applikation ohne jar Allgemeine Java-Themen 5
G überpüfen ob bereits instanz von java applikation läuft Allgemeine Java-Themen 4
L Ressourcen Java Applikation Allgemeine Java-Themen 4
D Name der Java-Applikation Allgemeine Java-Themen 2
G Java Applikation stürzt ab :!: Allgemeine Java-Themen 5
I JAR aus Applikation in neuer VM ausführen Allgemeine Java-Themen 9
clemente Swing Applikation killt kwin Prozess (unter Linux / KDE) Allgemeine Java-Themen 3
M Java Applikation Slideshow Allgemeine Java-Themen 13
D Japplet in Applikation einbinden Allgemeine Java-Themen 2
G Fehler beim Ausführen einer Applikation Allgemeine Java-Themen 4
C Java Applikation - Schrift . (formatieren, effekte) Allgemeine Java-Themen 4
Z suche feedback zum entwurf einer applikation Allgemeine Java-Themen 2
G Applikation in Website einbinden Allgemeine Java-Themen 3
S Web Applikation wird immer langsamer Allgemeine Java-Themen 5
G idee für java applikation Allgemeine Java-Themen 3
G eigene uhrzeit in einer java applikation führen Allgemeine Java-Themen 19
thE_29 Java Applikation ohne grafische Oberfläche Allgemeine Java-Themen 24
G Nur eine Instanz einer Applikation Allgemeine Java-Themen 4
G Java Applikation von einem Browser steuern Allgemeine Java-Themen 8
L Java Applikation über Netzwerk starten Allgemeine Java-Themen 8
M Einstellung einer Applikation speichern? Allgemeine Java-Themen 8
A wie bekomme ich Applikation zum Laufen Allgemeine Java-Themen 3
P Welches JRE braucht meine Applikation? Allgemeine Java-Themen 3
X Applikation Java Web Start fähig machen Allgemeine Java-Themen 4
O interess. Applikation-Tunneling, Downloads und IP-Verbergung Allgemeine Java-Themen 3
D Web-basierte Applikation Allgemeine Java-Themen 5
B Keine Musik bei Applikation Allgemeine Java-Themen 9
J Java Applet Verknüpfungsproblem Allgemeine Java-Themen 6
L Applet Applet zu JavaWebStart migrieren - simples sample geht nicht Allgemeine Java-Themen 2
A Applet Applet debuggen und Logs finden Allgemeine Java-Themen 3
A Plot funktion applet Allgemeine Java-Themen 4
A Applet nullstelle Plot Allgemeine Java-Themen 1
A Applet in HTML einbinden Allgemeine Java-Themen 1
B Altes Applet anpassen Allgemeine Java-Themen 8
W Unterschied Standalone und Applet Allgemeine Java-Themen 1
L WebSign Applet der Deutschen Bank Allgemeine Java-Themen 0
K Applet in JApplet umwandeln Allgemeine Java-Themen 5
V Applet trotz Ausnahme blockiert Allgemeine Java-Themen 0
T Java Applet Berechtigungen Allgemeine Java-Themen 2
T 2D-Grafik Java Applet Rechtecke und Kreise Allgemeine Java-Themen 1
I Java Applet wird immer blockiert Allgemeine Java-Themen 3
S Applet in html laden; InvocationTargetException,.. nur warum ? Allgemeine Java-Themen 0
S Java Applet wird dauerhaft blockiert Allgemeine Java-Themen 1
T Java applet args Allgemeine Java-Themen 5
S Java Applet Crash - Keine Exception Allgemeine Java-Themen 8
L Java Applet - ClassNotFound online, offline korrekt Allgemeine Java-Themen 13
Y Applet/Html - Wie Java-Methode aufrufen, die einen Parameter erwartet? Allgemeine Java-Themen 3
H Problem mit Applet (online / offline) Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben