Programm als Applet wandeln

Jomama09

Aktives Mitglied
Hallo Kollegen , möchte mein kleines Programm als Applet in eine HTML Seite einbinden.
Habe auch mal nachgesehen und dabei entdeckt das hierfür unter anderem die Main-Klasse
entfernt werden soll und der Aufbau in etwa so sein soll. Ini(), Start(),Stop(),Destroy(),
allerdings habe ich das nicht ganz verstanden.

Die Ursprungsklassen wären folgende vielleicht kann mir ja jemand paar hilfreiche Tips geben.

[Java]
public class MiniMalMain {
public static void main(String[] args) {
new MiniMalGui("MiniMal");
}
[/code]
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]
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;
}
}
[/code]

geht das mit meinem Programm überhaupt ? ???:L
 

Atze

Top Contributor
Java:
import java.applet.Applet;

public class MiniMalMain extends Applet{
	public void init() {
        new MiniMalGui("MiniMal");
    }
}

das simpleste wäre das :)
 

Spin

Top Contributor
Moin, naja du müsstest jetzt dein Frame umschreiben.

Deine init() ist dein Konstruktor und deine anderen Methoden bestimmst du mit dem was passieren soll.

Eigentlich nicht schwer. Musst halt nur ein wenig schauen , wie du einem Applet was hinzufügst.

Und wie oben : extends Applet oder auch JApplet

grüße spin
 

Jomama09

Aktives Mitglied
Danke für die guten Tips ! :toll:

Werde mal was ausprobieren wie weit ich komme.
Kann mich ja dann immer noch mal melden.
Mal sehen wie weit ich das umgestrickt bekomme.

Gruss aus Köln
 

L-ectron-X

Gesperrter Benutzer
Ich habe das hier schon öfter mal die (wie ich finde) beste Vorgehensweise ausführlich erklärt.
Du brauchst ein JPanel (MainPanel, in welchem du deine gesamte GUI aufbaust, einen JFrame und ein ganz normales JApplet.
Damit dein Applet den Inhalt deines JFrames anzeigt, brauchst du nur das MainPanel ins Applet einsetzen.
Falls du Bilder auf deiner Oberfläche anzeigen willst, musst du die im Applet laden, weil sich die Vorgehensweise da von der in Applikationen unterscheidet. Du brauchst also in diesem Fall im MainPanel eine Methode (z.B. Konstruktor), der du deine Bilder übergeben kannst.

Mit der Vorgehensweise brauchst du dich nicht groß verbiegen und es wird somit auch einfacher, den Überblick zu behalten.
 

Jomama09

Aktives Mitglied
Erstmal vielen Dank werde dann jetzt mal was ausprobieren.

Na Bilder will ich eigentlich keine in das Applet setzen.
Allerdings sind ja kleine Icon in meiner Leiste wo ich dann die Funktion auswähle.
Ich möchte eigentlich nur ein Grafikfeld erzeugen auf dem Gemalt wird.
Wie ich gesehen ahe kann ich aber die Größe im Code nicht festlegen, dies muss wohl
im HTML Tag festgelegt werden.

Na werde was basteln ist ja einiges zu tun.

Versuche es mal mit anpacken. Vielen Dank für die Zahlreichen Tips.:toll:
 

Jomama09

Aktives Mitglied
Hallo Leute ich bekomme das einfach nicht geschossen. Denke mal für mich als Anfänger doch ne Nummer zu hoch. Verzweifle einfach an dieser Aufgabe. ;(

Könnte mir vielleicht jemand die Sache umschreiben. Denke mal das das für einen Erfahrenen Programmierer ne Kleinigkeit ist.

Wäre auch bereit wenn nötig etwas dafür zu zahlen.

Wäre nett wenn sich jemand die Zeit nehmen würde.

Vielen Dank vorab
 

Jomama09

Aktives Mitglied
Habe zum Testen mal so angefangen, da ich mit dem gesamten Code den ich wandeln muss, einfach nicht zurecht gekommen bin. Hoffe das ich auf diesem Weg auch zum Erfolg komme.

Java:
import java.awt.BorderLayout;

import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.BorderLayout;

public class MalApplet extends JApplet {
	
	public void init(){
		
	JFrame hauptFrame = new JFrame();	
	JPanel hauptPanel = new JPanel();
	BorderLayout layout1 = new BorderLayout(1,1);
	hauptPanel.setLayout(layout1);
	hauptPanel.add("North",new JButton("Test"));
	add(hauptPanel);
	}
}
Zumindest klappt dieses Applet soweit. Mal sehen wenn es etwas umfangreicher wird.
Hoffe dann behalte ich auch die Übersicht.
 

Jomama09

Aktives Mitglied
Hallo L-ectron-X,

ja werde mal sehen ob ich das finde.
Habe gestern bis 1 noch was probiert, aber richtig nennenswertes ist da nicht bei rumgekommen.
Habe mir selbst mal ein Beispiel nach und nach versucht aufzubauen.
Na ein Applet mit dem Button mit BorderLayout"NORTH" hatte ich dann auch hinbekommen.
Hoffe ich bin auf dem Richtigen weg.
Java:
import java.awt.BorderLayout;
import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.JButton;


public class MalApplet extends JApplet {
	
	public void init(){
		
		
	JPanel hauptPanel = new JPanel();
	BorderLayout layout1 = new BorderLayout(1,1);
	hauptPanel.setLayout(layout1);
	hauptPanel.add("North",new JButton("Test"));
	add(hauptPanel);
	}
}
 

L-ectron-X

Gesperrter Benutzer
Nicht ganz. Du brauchst fertige Objekte von einem JPanel, einer JMenuBar und einer JToolBar, von denen du Instanzen in dein Applet und in dein Applikationsfenster einbauen kannst.
Du baust dir also entsprechende Objekte von einem JPanel als Hauptpanel für die GUI, einer JMenuBar als Menüleiste und einer JToolBar. Es ist egal, ob du von ihnen erbst oder entsprechende Versionen in Klassen zusammenbaust und fertige Objekte zurückgibst.
Du brauchst dann nur noch diese Instanzen in dein Applet bzw. deinen JFrame einsetzen.
 

Jomama09

Aktives Mitglied
Nach vielen Tips und einiges an Grübeln, lesen ,lesen ,lesen.
Habe ich die erste Etappe geschafft. Das Applet geht und allen überflüssigen misst ,der bei einem Applet
eh nicht mehr geht ,oder keinen Sinn macht habe ich entfernt.
Damit in einem Applet die Icons auch zu sehen sind, habe ich die Bilder in den bin Ordner kopiert und mit getClass().getResource("testbild.gif")) den Aufruf verändert. Hoffe der fertige Code hilft auch anderen Anfängern noch weiter.
Java:
package de.fernschulen.minimal;

import javax.swing.JApplet;
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.JToolBar;
import javax.swing.KeyStroke;

// Hier wurde aus Frame ein Applet 
public class MiniMalGui extends JApplet{
	//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 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("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());
			}
		}
	}

	// Wurde angepasst ,da kein Name mehr für die Gui mitgegeben wird.
	// Es gibt ja keine Leiste mehr
	
	public MiniMalGui() {
		super();
		//wir nehmen ein Border-Layout
		// Zum anzeigen der Icons wurden die Bilder in den bin Ordner kopiert
		// und getClass().getResource() hinzugefügt.
		setLayout(new BorderLayout());
		rectAct = new MeineAktionen("Rechteck", new ImageIcon(getClass().getResource("rect24.gif")), "Zeichnet ein Rechteck", null, "rechteck");
		kreisAct = new MeineAktionen("Kreis", new ImageIcon(getClass().getResource("circle24.gif")), "Zeichnet einen Kreis", null, "kreis");
		linieAct = new MeineAktionen("Linie", new ImageIcon(getClass().getResource("line24.gif")), "Zeichnet eine Linie", null, "linie");
		farbeAct= new MeineAktionen("Farbauswahl", new ImageIcon(getClass().getResource("color24.gif")), "Öffnet einen Dialog zur Farbauswahl", null, "farbauswahl");
		
		//das Werkzeug ist 1 - also das Rechteck
		werkzeug = 1;
		
		//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);	
	}
	
	//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 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);
	}
}

Hoffe mal das ich das ganze jetzt auch mit einem Html Zugriff hinbekomme.
 

Jomama09

Aktives Mitglied
Versuche jetzt die Datei mit Html zu starten. Klappt aber leider nicht scheint wohl den Ort meiner Klassen nicht zu finden ?

Html Code ist wie folgt.
HTML:
[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Start Java Applet Malen</title>
<meta name="description" content="Mit dieser Datei wird ein Java Applet gestartet.">
<meta name="author" content="Jupp "
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">

<applet code="MiniMalGui.class" width="250" height="300"></applet>
</body>
</html>

Es kommt leider ein Fehler. Dabei habe ich die HTML Datei auch in den Ordner unter \bin abgelegt.
Somit sind eigentlich alle Dateien (Icon/Classen/Html im selben Ordner).

Ausnahme: java.lang.NoClassDefFoundError: MiniMalGui (wrong name: de/fernschulen/minimal/MiniMalGui)

Kann vielleicht jemand helfen ???:L
 

Jomama09

Aktives Mitglied
Fehler in Html habe ich gefunden.

HTML:
<applet code="de.fernschulen.minimal.MiniMalGui.class" width="200" height="200"></applet>

Leider habe ich jetzt im Code ein ganz anderes Problem.
Das Applet ist abgehackt. Habe nur oben die ToolBar() und an der Seite noch einen Streifen.

Denke wenn ich ein JFrame/ JPanel in das Applet integriere sollte das Problem weg sein oder ?

Aber wie kriege ich das hin ???;(

So kurz vorm Ziel und doch so weit weg.
 

Jomama09

Aktives Mitglied
Hab es mal so probiert, aber das will er so nicht. Warum.

Java:
@Override
	public void init(){
	MiniMalGui Test = new MiniMalGui();
	JFrame Haupt = new JFrame();
	Haupt.add(symbolleiste());
	Test.add(Haupt);

Erzeuge erst ein Objekt von MiniMalGui ,danach ein Frame Haupt.
dann füge dem Frame die Symbolleiste hinzu und dieses setze ich dann in mein Applet oder ???

Kann mir einer helfen wo der Fehler ist.
 

Jomama09

Aktives Mitglied
Hi L-ectron-X,

verstehe das ganze anscheinend nicht.
Wenn ich das Programm über die Webseite starten lasse klappt es ja soweit.
Nur ist das Applet nicht so wie gewollt.

Die Leiste ist da und links ist auch ein Rand, aber Rechts ist das Panel offen und unten.

Wenn ich es Richtig sehe habe ich doch in meinem Code bereits Objekte erzeugt oder?

JToolBar() hier

Java:
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);

Menübar ist nicht mehr gewollt, da hier nur Datei/Beenden drin war und das wollte ich im Applet nicht, da dies ja eh nicht klappt im funktioniert im Applet.

Wenn ich doch hingehe und ein JPanel() erzeuge und ein MiniMalGui müsste es doch klappen oder?

public void init(){
MiniMalgui MalApplet = new MiniMalGui(); // Instanz MalApplet von MiniMalGui(Applet)
JPanel hauptPanel = new JPanel(); // Instanz hauptPanel (JPanel)
hauptPanel.add(leiste); // So möchte ich die Toolbar dem JPanel hinzufügen
MalApplet.add(haupPanel); // Hier möchte ich dann das JPanel mit der Toolbar(leiste) auf das Applet setzen.

Aber irgendwie klappt das leider nicht. :noe:
Wie soll ich das sonst zusammenbauen.

Kann einfach nicht erkennen woran das liegt.
 

L-ectron-X

Gesperrter Benutzer
Das Thema wurde inzwischen zwar als "Erledigt" markiert, trotzdem möchte ich noch meinen eben mal zusammengestöpselten Lösungsansatz für dein Problem posten.
Ich habe das genauso gemacht, wie ich es oben schon versucht habe zu erklären.

Im Anhang findest du eine Zip-Datei, in der sich eine Jar-Datei und eine HTML-Datei befinden.
Die Jar-Datei kannst du auf deinem PC per Doppelklick als Applikation starten. Wenn du die HTML-Datei in einen Browser lädst wird das in das Jar-Archiv eingebaute Applet gestartet.

In der Jar-Datei ist auch ein Verzeichnis src, in dem sich der Quellcode des Ganzen befindet.
 

Anhänge

  • App 2 Applet.zip
    15,3 KB · Aufrufe: 9
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Normales Java Programm in Applet umwandeln Java Basics - Anfänger-Themen 17
K Java Programm -> Java Applet. Wie? Java Basics - Anfänger-Themen 2
L Java Programm in Applet umwandeln Java Basics - Anfänger-Themen 13
P Wie konvertiert man ein JAVA-Programm (jar) in ein Applet? Java Basics - Anfänger-Themen 4
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 23
tomzen Programm ignoriert in der Ausführung Code Java Basics - Anfänger-Themen 8
S Erstes Programm: Hallo Welt funktioniert nicht. Java Basics - Anfänger-Themen 3
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Ü Dead Code im Programm? Java Basics - Anfänger-Themen 13
M Java Mail Programm Java Basics - Anfänger-Themen 4
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
M Mini Jar-Programm Java Basics - Anfänger-Themen 51
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
M Das Programm stellt nichts dar Java Basics - Anfänger-Themen 2
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
Z Programm Ideen Java Basics - Anfänger-Themen 8
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
P Wie kann ich beispielsweise Speicherstände eines Spiels DAUERHAFT in meinem Programm speichern? Java Basics - Anfänger-Themen 3
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
T Programm stürzt ab Java Basics - Anfänger-Themen 40
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
N Interpreter-Fehler Compiler zeigt keine Fehler an, aber das Programm läuft nicht (BlueJ) Java Basics - Anfänger-Themen 2
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
Jul1n4tor Programm mit Scanner und If-Statements Java Basics - Anfänger-Themen 2
D Wie sehe ich ein Java-Programm? Java Basics - Anfänger-Themen 27
K Ist das Programm schlecht bzw. schlampig programmiert ? Java Basics - Anfänger-Themen 9
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
M Von Eclipse zum richtigen Programm Java Basics - Anfänger-Themen 1
nbergmann IntelliJ: Wie lade ich ein fertiges Programm aus dem Lehrbuch? Java Basics - Anfänger-Themen 26
D Anfängerfrage zu meinem Programm. Java Basics - Anfänger-Themen 15
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 22
I Jetty starten von Programm (Main) Java Basics - Anfänger-Themen 27
Kydo Programm Beschreibung Java Basics - Anfänger-Themen 3
nbergmann Eclipse: Lehrbuch-Programm startet nicht Java Basics - Anfänger-Themen 7
T Java FXML selbes Fenster verschiedene Stellen im Programm Java Basics - Anfänger-Themen 5
frager2345 Programm erstellen ohne Autoboxing und Unboxing Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
P exportiertes Programm funktioniert nur teilweise Java Basics - Anfänger-Themen 7
J Mein Programm läuft bei der ersten Eingabe nicht mehr weiter, woran liegt das? Java Basics - Anfänger-Themen 6
M Wo hält das Programm an? Java Basics - Anfänger-Themen 11
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
Fugover Programm funktioniert nicht Java Basics - Anfänger-Themen 11
Fugover Kopfrechnen-Programm Java Basics - Anfänger-Themen 6
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
sserio Wieso funktioniert mein Programm nicht Java Basics - Anfänger-Themen 2
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
A wie kann ich es in meinem Programm rein tun Java Basics - Anfänger-Themen 8
S Fehler beim Programm Java Basics - Anfänger-Themen 2
Jose05 Fehler im Programm feststellen Java Basics - Anfänger-Themen 2
F Kann mir jemand kurz dieses Programm erklären? Java Basics - Anfänger-Themen 22
I Programm erkennt nicht an das Array zurückgegeben wird trotz Initialisierung *einfach* Java Basics - Anfänger-Themen 9
J Nach dem Exportieren funktioniert mein Programm nicht mehr Java Basics - Anfänger-Themen 8
P Mein Programm wird zwar erfolgreich Compiliert, öffnet sich aber nicht Java Basics - Anfänger-Themen 6
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
A Lotto Programm Java Basics - Anfänger-Themen 3
S Programm erstellen Java Basics - Anfänger-Themen 3
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
S MinMax Programm erstellen Java Basics - Anfänger-Themen 4
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
brypa Programm mit Eingabe Java Basics - Anfänger-Themen 129
B Java Programm soll mit Python kommunizeren Java Basics - Anfänger-Themen 1
SpigBin Programm läuft nicht weiter... Java Basics - Anfänger-Themen 10
M JAVA Programm in Website einbinden Java Basics - Anfänger-Themen 19
B Programm, dass alle 3 Tage eine Webseite öffnet? Java Basics - Anfänger-Themen 20
B Programm beendet sich nicht und weiteres seltsames Verhalten Java Basics - Anfänger-Themen 9
N Eclipse Programm normal ausführen Java Basics - Anfänger-Themen 1
D Programm auf Enter warten lassen Java Basics - Anfänger-Themen 2
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
F Frage betreff Programm mit dem man C++-Code in JAVA-Code übersetzen lassen kann Java Basics - Anfänger-Themen 2
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
WAB9703-04 Programm zum automatischen Ausfüllen von Formularen programmieren Java Basics - Anfänger-Themen 3
OSchriever Jar-Programm läuft auf Windows aber nicht auf Linux(Raspberri Pi4) Java Basics - Anfänger-Themen 22
G Programm Code Java Basics - Anfänger-Themen 5
CptK Achsenskalierung in Koordinatensystem hängt Programm auf Java Basics - Anfänger-Themen 5
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
TimoN11 Mail Programm mit Java? Java Basics - Anfänger-Themen 1
Sajeel Chattha Dieses Programm umschreiben Java Basics - Anfänger-Themen 5
J Programm beenden ohne System.exit() oder Runtime.exit() Java Basics - Anfänger-Themen 5
F Java Programm, das kleine Buchstaben in einem String zählen soll und bei großen Buchstaben oder Sonderzeichen abbrechen soll. Java Basics - Anfänger-Themen 5
A Programm Histogram Java Basics - Anfänger-Themen 2
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18
CT9288 Interaktion mit laufendem Programm -Fachbegriffe Java Basics - Anfänger-Themen 2
Gaudimagspam Assertions im Programm hinzufügen Java Basics - Anfänger-Themen 4
G Weiß jemand wie man dieses Programm schreibt? Java Basics - Anfänger-Themen 84
C Programm ausführen ohne JRE? Java Basics - Anfänger-Themen 3
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
N Best Practice How can I creat a programm with java under windows 10 in order to open an spreadsheet in libreoffice calc format Java Basics - Anfänger-Themen 11
W Programm dass Palindrome erkennt Java Basics - Anfänger-Themen 6
K Erste Schritte Programm geht aus Schleife, warum? Java Basics - Anfänger-Themen 2
P Wie für EIN Java Programm von 64bit Java (=Standard) auf 32bit Java Installation (Windows) umschalten? Java Basics - Anfänger-Themen 6
K Programm stoppt einfach ohne Grund Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben