Ausgabe einer Methode schreibt in HTML Datei

Status
Nicht offen für weitere Antworten.

Silkstring

Mitglied
Hallo erstmal,

ich beschäftige mich erst seit ca. 4 Monaten mit Java, davon erst seit rund einer Woche mit Applets.

Mein Applet liest Eingaben über HTML Formulare ein und gibt diese in einer bestimmten Formatierung aus - grob gesagt geht es um Musiknoten. Nun bin ich vor ein Problem gestoßen für welches ich bisher keine Lösung gefunden habe: nämlich soll die Ausgabe der Noten, also die Formatierung, für den Benutzer speicherbar sein. Aus einem Applet heraus wäre die einzigste Möglichkeit dazu ein Screenshot den man dann erst noch in einem Zeichenprogramm bearbeiten müsste, also habe ich mir gedacht das bei einem Klick auf einen "Speichern"-Button (in der HTML Datei) ein Popupfenster erscheint, welches mit den ausgegebenen Werten des Applets gefüllt wird (Bei diesen handelt es sich Strings aus einem 3dimensionalem Array).

So in etwa habe ich mir das gedacht, nur eben anstatt einem gr.drawString() eine Textausgabe im Sinne von System.out.println... nur eben in die Html Datei :bahnhof:
Code:
    for (int all = 0; all < 10; all++) {
      for (int i = 1; i < 7; i++) {
        for (int j = 0; j < 40; j++) {
          gr.drawString(sTab[i-1][j][all], (j * 20), (i * 15)+(all*100));
        }
      }
    }

Ich hoffe dass dies überhaupt möglich ist! Und falls jemandem etwas dazu einfallen sollte, ich wäre um jede Idee dankbar :)

mit freundlichem Gruß,
Anton M.
 

Silkstring

Mitglied
ähm ja, wie ich irgendwie herausgefunden habe ist das irgendwie durch xmls möglich, aber auch nur wenn das programm als servlet und nicht als applet läuft.

jedenfalls bin ich noch nicht weiter, vielleicht habe ich ja glück und finde noch jemanden der mir bei dem problem helfen kann :)
 
S

Spacerat

Gast
Darf man mal erfahren, wo das Applet im Internet zu finden ist? Ich hab' glaub' ich eine Idee, müsste aber wissen, ob deine HTML-Datei innerhalb oder ausserhalb des Applet-Panels aufgebaut wird. Ich denke da an "Datei: Speichern unter..." (wie z.B. im IE-Menue). Da nur signierte Applets auf das Dateisystem zugreifen dürfen, sollte die HTML-Seite ausserhalb des Applets (z.B. in einem Frame oder per Live-Connect erstellt werden).
 
S

Spacerat

Gast
So weit, so gut...

Ich befasse mich mal ein wenig damit... bis denne.
 
S

Spacerat

Gast
So... 'ne Kleinigkeit kann ich Schon mal anbieten. Und zwar kannst du damit unformatierten Text in die Zwischenablage kopieren (nur Windows? Keine Ahnung...). Ist zwar noch kein speichern unter, aber immerhin schon etwas...

Code:
<SCRIPT LANGUAGE="JavaScript">
<!--
function ClipBoard()
{
	holdtext.innerText = Tab.getPlainText();
	Copied = holdtext.createTextRange();
	Copied.execCommand("RemoveFormat");
	Copied.execCommand("Copy");
}
//-->
</SCRIPT>

<TEXTAREA ID="holdtext" STYLE="display:none;"></TEXTAREA>
<BUTTON onClick="ClipBoard();">Copy to Clipboard</BUTTON>

Die Methode getPlainText() muß von dir noch ins Applet geschrieben werden, und einen String zurück geben. Der kopierte Text ist wie gesagt unformatiert und kann so in z.B. das NotePad (Editor) eingefügt werden (Bearbeiten:Einfügen oder STRG-V) und von dort gespeichert werden.

Aber mal davon ab... Wenn du es schaffst die gesammte String-Ausgabe des Applets in HTML auszugeben, kannst du dein Applet auf die Grösse 1x1 verkleinern, und die Ausgabe einem TABLE überlassen. Da ich nun den Quellcodes deines Applets nicht habe (und auch nicht unbedingt brauche), sauge ich mir dafür mal ein Beispiel aus den Fingern.
 
S

Spacerat

Gast
Da hat er auch schon einen Vorschlag.

Ein Beispiel-HTML-Code:
Code:
<HTML>
<HEAD>
<TITLE>Java Detection</TITLE>
</HEAD>
<BODY>
<TABLE width="100%" height="30%">
	<TR valign="center">
		<TD align="center">Ermittle Daten über Java und Java3D Umgebung.</TD>
	</TR>
</TABLE>
<FORM action ="#" method="post" name="dtform" id="dtform">
<TABLE width=70% align=center>
	<TR>
		<TD width=50%><P align=center>Java Virtual Machine</P></TD>
		<TD width=50%><P align=center><INPUT type="text" size="20" name="jvm" 

value="0" id="jvm" disabled></P></TD>
	</TR>
	<TR>
		<TD width=50%><P align=center>Java 3D Environment</P></TD>
		<TD width=50%><P align=center><INPUT type="text" size="20" name="j3d" 

value="0" id="j3d" disabled></P></TD>
	</TR>
</TABLE>
</FORM>
<SCRIPT language="JavaScript" type="text/javascript">
<!--
var object;
if (navigator.javaEnabled()) {
	object  = "<APPLET id='Detect' name='Detect' code='JavaDetect.class' codebase='./' 

";
	object += "type='application/x-java-applet' width='1' height='1' scriptable='yes'>";
	object += "<PARAM name='j3d' value='1'>";
	object += "</APPLET>";
	document.write(object);
	document.dtform.j3d.value = document.Detect.getJ3D();
	document.dtform.jvm.value = document.Detect.getJVM();
}
//-->
</SCRIPT>
</BODY>
</HTML>

und das verwendete Applet:
Code:
/*
 * JavaDetect.java
 *
 * Created on 15. Januar 2005, 12:12
 */

import java.applet.*;
import java.util.*;
import javax.media.j3d.*;

/**
 *
 * @author  Spacerat
 */
public class JavaDetect
extends Applet
{
    /**
	 * Comment for <code>serialVersionUID</code>
	 */
	private static final long serialVersionUID = 1L;

    public String getJ3D()
    {
        String rt = "0";
        boolean act = (getParameter("j3d") != null && !getParameter("j3d").equals("0"))? true : false;
        if (act) try {
            Class clazz = Class.forName("javax.media.j3d.VirtualUniverse");
            Map test = VirtualUniverse.getProperties();
            rt = (test.containsKey("j3d.version"))? test.get("j3d.version").toString() : "0";
        } catch (Exception e) {
            rt = "0";
        }
        return rt;
    }

    public String getJVM()
    {
        return System.getProperty("java.vm.version");
    }
}

Dieses Applet kommt ganz ohne init(), start() und stop() aus. Für deine Belange brauchst du nur EINE Methode zur Stringausgabe. Der Table innerhalb der Form kommt an den Platz (Position und Grösse) des Applets. Das Applet selber kann versteckt werden. Text-Felder -Areas usw. können über HTML, CSS und Java-Script formatiert und farblich gestaltet werden. Aus Javascript wird schliesslich die Methode zur Text-Ausgabe aufgerufen. D.H. g2.drawString() fällt komplett aus, Das Applet kümmert sich möglicherweise nur um den Text, und Java-Script, HTML und CSS übernehmen den Rest. Die gesamte Ausgabe kann so mit speichern unter auf dem Rechner abgelegt werden. Viel Glück beim tüfteln. Für weitere Fragen bin ich gerne offen.
 

Silkstring

Mitglied
danke für deine mühen spacerat :)
entschuldige die späte antwort, ich hatte gerade 2 wochen urlaub und daheim habe ich derzeit kein internet.

ich werde mir das ganze heute abend mal durch den kopf gehen lassen und rumprobieren, das ist übrigens der code meines applets:

Code:
import java.applet.Applet;
import java.awt.*;

public class TabWriter extends Applet
{
  String[][][] strArr_tabulatur = new String[6][40][10];
  int takt = 0, zeile = 0;
  boolean check = true, taktCheck = false;
  int xPos = 0, yPos = 0;

  public void paint(Graphics gr)
  {
    setBackground(Color.white);
    makeArray("E","A","D","G","B","e");
    printArray(gr);
  }

  public void makeArray(String aStringE, String aStringA, String aStringD, String aStringG, String aStringB, String aStringeKl)
  {
    if (check == true)
    {

      for (int all = 0; all < 10; all++)
      {
        for (int i = 0; i < 6; i++) {
          for (int j = 0; j < 40; j++) {
            strArr_tabulatur[i][j][all] = "-";
            if (i == 0 && j == 0)
      				strArr_tabulatur[i][j][all] = aStringeKl;
            else if (i == 1 && j == 0)
              strArr_tabulatur[i][j][all] = aStringB;
            else if (i == 2 && j == 0)
              strArr_tabulatur[i][j][all] = aStringG;
            else if (i == 3 && j == 0)
              strArr_tabulatur[i][j][all] = aStringD;
            else if (i == 4 && j == 0)
              strArr_tabulatur[i][j][all] = aStringA;
            else if (i == 5 && j == 0)
              strArr_tabulatur[i][j][all] = aStringE;
          }
        }
      }
      check = false;
    }
  }

  public void printArray(Graphics gr)
  {
    gr.setColor(Color.red);
    gr.fillRect(((takt)*20)-6, yPos*100, 18, 95);
    for (int all = 0; all < 10; all++) {
      for (int i = 1; i < 7; i++) {
        for (int j = 0; j < 40; j++) {
          gr.setColor(Color.black);
          gr.drawString(strArr_tabulatur[i-1][j][all], (j * 20), (i * 15)+(all*100));
        }
      }
    }
  }

  /**
   *
   * @param aStringE
   * @param aStringA
   * @param aStringD
   * @param aStringG
   * @param aStringB
   * @param aStringe
   * @param gr
   */
  public void saitenNummer(String aStringE, String aStringA, String aStringD, String aStringG, String aStringB, String aStringe)
  {
    if (takt == 39)
    {
      zeile++;
      yPos++;
      takt = 1;
      xPos = 0;
    }
    else
      takt++;

    strArr_tabulatur[0][takt][zeile] = aStringe;
    strArr_tabulatur[1][takt][zeile] = aStringB;
    strArr_tabulatur[2][takt][zeile] = aStringG;
    strArr_tabulatur[3][takt][zeile] = aStringD;
    strArr_tabulatur[4][takt][zeile] = aStringA;
    strArr_tabulatur[5][takt][zeile] = aStringE;

    for (int i = 0; i < 6; i++)
    {
      if (strArr_tabulatur[i][takt][zeile].equals("") == true)
        strArr_tabulatur[i][takt][zeile] = "-";
    }

    repaint();
  }

  public void undo()
  {
  	if (takt > 0)
  	{
  	    xPos = xPos - 1;
        takt = takt - 1;
        saitenNummer("-","-","-","-","-","-");
        if (takt > 1 || xPos != 1)
        {
            xPos = xPos - 1;
            takt = takt - 1;
            repaint();
        }
    }
    if (takt == 0 && zeile > 0)
    {
    	xPos = 39;
    	takt = 39;
    	yPos = yPos - 1;
    	zeile = zeile - 1;
    	repaint();
    }
  }

  public void reset()
  {
    zeile = 0;
    check = true;
    takt = 0;
    yPos = 0;
    xPos = 0;
    repaint();
  }
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Problem bei der Ausgabe in einem Applet Tools - Maven, Gradle, Ant & mehr 3
R Textfeld ausgabe Tools - Maven, Gradle, Ant & mehr 4
H Nutzung einer eigenen checkstyle Konfiguration in Jenkins - Grundsätzliches Tools - Maven, Gradle, Ant & mehr 2
D Maven Abhängigkeiten überprüfen auf Kompatibilität mit einer anderen Java-Version Tools - Maven, Gradle, Ant & mehr 11
VfL_Freak Icon einer JNLP-Datei ändern ?? Tools - Maven, Gradle, Ant & mehr 2
N Ant [Android] Skript zum bauen einer .pak-Datei. Tools - Maven, Gradle, Ant & mehr 1
N Webservice Einbinden einer WSDL Tools - Maven, Gradle, Ant & mehr 11
S Webstart Webstart einer Applikation mit einer veralteten JNLP-Datei Tools - Maven, Gradle, Ant & mehr 6
G Maven Goals in einer phase ausführen Tools - Maven, Gradle, Ant & mehr 1
S Versionierung und automatischer FTP-Upload einer Webstart-Anwendung Tools - Maven, Gradle, Ant & mehr 3
S Problem bei Nutzung einer eigenen EJB in einem Servlet Tools - Maven, Gradle, Ant & mehr 2
A Auslesen einer .txt Datei auf Server mit Digest Authentifizierung Tools - Maven, Gradle, Ant & mehr 2
J JNLP und ein jar mit einer Access DB Tools - Maven, Gradle, Ant & mehr 4
G Ant in einer Batch Datei Tools - Maven, Gradle, Ant & mehr 6
P Problem beim Senden einer Datei Tools - Maven, Gradle, Ant & mehr 5
N Signiertes Applet verbindet sich nicht mit einer DB Tools - Maven, Gradle, Ant & mehr 6
J Daten von einer Webseite bearbeiten Tools - Maven, Gradle, Ant & mehr 4
A Applet aus einer Klasse starten 2 Tools - Maven, Gradle, Ant & mehr 8
A Applet aus einer Klasse starten Tools - Maven, Gradle, Ant & mehr 2
D Applet aufruf einer anderen Klasse funktioniert nicht Tools - Maven, Gradle, Ant & mehr 7
G mehrere Applets auf einer Seite Tools - Maven, Gradle, Ant & mehr 7
N Java Applet mit einer GUI erstellen Tools - Maven, Gradle, Ant & mehr 5
B Einer Grafik verschiedene Regionen zuweisen Tools - Maven, Gradle, Ant & mehr 3
R Array Werte einer JComboBox hinterlegen Tools - Maven, Gradle, Ant & mehr 2
T Mit Applet Bild von einer anderen HP darstellen Tools - Maven, Gradle, Ant & mehr 28
O Result einer Abfrage im Applet darstellen Tools - Maven, Gradle, Ant & mehr 11
Paule Aufruf einer neuen Klasse durch Button-Klick Tools - Maven, Gradle, Ant & mehr 11
F Erstellen einer Policy-Datei Tools - Maven, Gradle, Ant & mehr 8
K Applet mit einer Sinuskurven berechnung Tools - Maven, Gradle, Ant & mehr 2
G öffnen einer neuen seite mit word text Tools - Maven, Gradle, Ant & mehr 3
M Mit Maven eine jar Datei bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 1
M Mit Maven eine jar Datei Bauen ohne irgendeine main Methode Tools - Maven, Gradle, Ant & mehr 18
T Daten per POST-Methode aus Java-Applet nach php-Script senden Tools - Maven, Gradle, Ant & mehr 3
G Applet Destroy methode wird nicht aufgerufen :( Tools - Maven, Gradle, Ant & mehr 4
B String in paint Methode anzeigen Tools - Maven, Gradle, Ant & mehr 5
F paint methode richtig aufrufen Tools - Maven, Gradle, Ant & mehr 10
C Aus dem Applet in die POST-Methode?? Tools - Maven, Gradle, Ant & mehr 6
M die paint-methode Tools - Maven, Gradle, Ant & mehr 2

Ähnliche Java Themen

Neue Themen


Oben