Benutzerdefinierte Suche

Von JFrame zu Applet

  1. iCox87

    iCox87 Thread StarterMacUser Mitglied

    Mitglied seit:
    10.08.2006
    Beiträge:
    294
    Zustimmungen:
    5
    Hi Leute...

    Bin noch Java Anfänger...Ich und mein Partner ( Banknachbar) sollen "Das Haus vom Nikolaus" als Applet zum laufen bringen, unser Problem besteht darin das zu schreiben, haben desshalb mit Hilfe des Internets und des Lehrers einiges hinbekommen. Nur das Problem, dass das Material ( aus dem Internet ) für jFrames ist, weiss erstens nicht wirklich was das ist un weiss auch nicht wie wir das nun umschreiben sollen zu einem Applet.

    Edit: Im moment läuft es ja super nur zu einem Applet zu machen geht nicht.

    Ich hoffe ihr wisst was ich meine, hier der Quelltext:

    import javax.swing.*;
    import java.awt.*;

    public class HalloWelt extends JFrame {

    private boolean ani = false;

    public HalloWelt() {

    setSize(300, 400);
    setVisible(true);
    }

    public void paint(Graphics g) {

    super.paint(g);
    if (ani) {
    Graphics2D g2d = (Graphics2D)g;
    paintStrich(250, 250, 350, 150, g2d);
    paintStrich(250, 50, 150, 150, g2d);
    paintStrich(50, 50, 150, 350, g2d);
    paintStrich(50, 250, 350, 350, g2d);
    paintStrich(250, 50, 350, 150, g2d);
    paintStrich(50, 150, 150, 50, g2d);
    paintStrich(150, 250, 50, 150, g2d);
    paintStrich(250, 50, 150, 350, g2d);
    ani = false;
    }
    }

    private void paintStrich(int x1, int x2, int y1, int y2, Graphics2D g) {

    if (x1 == x2) {
    paintY(x1, y1, y2, g);
    }
    else if (y1 == y2) {
    paintX(x1, x2, y1, g);
    }
    else {
    paintDiagonal(x1, x2, y1, y2, g);
    }
    }

    private void paintDiagonal(int x1, int x2, int y1, int y2, Graphics2D g) {

    if (x1 < x2 && y1 < y2) {
    for (int x = x1, y = y1; x < x2; x++, y++) {
    g.drawLine(x, y, x, y);
    try {
    Thread.sleep(5);
    }
    catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    else if (x1 > x2 && y1 > y2){
    for (int x = x1, y = y1; x > x2; x--, y--) {
    g.drawLine(x, y, x, y);
    try {
    Thread.sleep(5);
    }
    catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    else if (x1 < x2 && y1 > y2){
    for (int x = x1, y = y1; x < x2; x++, y--) {
    g.drawLine(x, y, x, y);
    try {
    Thread.sleep(5);
    }
    catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    else if (x1 > x2 && y1 < y2){
    for (int x = x1, y = y1; x > x2; x--, y++) {
    g.drawLine(x, y, x, y);
    try {
    Thread.sleep(5);
    }
    catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    }

    private void paintY(int x1, int y1, int y2, Graphics2D g) {

    if (y1 < y2) {
    for (int i = y1; i < y2; i++) {
    g.drawLine(x1, i, x1, i);
    try {
    Thread.sleep(5);
    }
    catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    else {
    for (int i = y1; i > y2; i--) {
    g.drawLine(x1, i, x1, i);
    try {
    Thread.sleep(5);
    }
    catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    }

    private void paintX(int x1, int x2, int y1, Graphics2D g) {

    if (x1 < x2) {
    for (int i = x1; i < x2; i++) {
    g.drawLine(i, y1, i, y1);
    try {
    Thread.sleep(5);
    }
    catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    else {
    for (int i = x1; i > x2; i--) {
    g.drawLine(i, y1, i, y1);
    try {
    Thread.sleep(5);
    }
    catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    }

    public void drawHouse() {
    ani = true;
    repaint();
    }

    public static void main(String[] args) {

    new HalloWelt().drawHouse();
    }
    }

    Danke im Voraus:cool:
     
    iCox87, 23.11.2006
  2. oneOeight

    oneOeightMacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.176
    Zustimmungen:
    3.891
    ihr schafft es doch auch die klasse jframe zu erweitern...
    warum könnt ihr das denn nicht mit der klasse applet? ;)

    google doch einfach mal nach einem java applet tutorial...
     
    oneOeight, 23.11.2006
  3. iCox87

    iCox87 Thread StarterMacUser Mitglied

    Mitglied seit:
    10.08.2006
    Beiträge:
    294
    Zustimmungen:
    5
    Weil wir nicht wirklich wissen wie das geht, haben aber rausgefunden, dass wir der Anfang so schreiben müssen:

    import javax.swing.*;
    import java.awt.*;


    public class HalloWelt extends JApplet >> und nicht JFrame

    wenn wir aber ausführen passiert nix, öffnet zwar eine neues Fenster jedoch geschieht nix:o
     
    iCox87, 23.11.2006
  4. mefir

    mefirMacUser Mitglied

    Mitglied seit:
    05.10.2005
    Beiträge:
    36
    Zustimmungen:
    1
    Wenn du aus "extends JFrame" "extends JApplet" machst und ani gleich auf true setzt sollte das eigentlich schon klappen.
     
    mefir, 23.11.2006
  5. Sojus

    SojusMacUser Mitglied

    Mitglied seit:
    30.05.2006
    Beiträge:
    143
    Zustimmungen:
    3
    Also eine kalsse extends Applet machen.

    Im applet überschreist du dann ein paar methonen:

    public void init(){} //WIrd beim laden des applets ausgeführt

    public void start(){}//wird beim starten ausgeführt

    public void paint(Graphics g){} //die Paint Mehtode mit der du auf das Applet zeichnest

    wenn du da deine eigenen methoden noch einfügst sollte das kein problem mehr sein


    mfg
     
    Sojus, 23.11.2006
  6. iCox87

    iCox87 Thread StarterMacUser Mitglied

    Mitglied seit:
    10.08.2006
    Beiträge:
    294
    Zustimmungen:
    5
    welche muss ich denn genau überschreiben, sind ja einige Methoden:o
     
    iCox87, 23.11.2006
  7. Sojus

    SojusMacUser Mitglied

    Mitglied seit:
    30.05.2006
    Beiträge:
    143
    Zustimmungen:
    3
    ich überschreibe eigentlich immer alle, spielt keine rolle

    bei der init kannst noch setBackground und setsSize für farbe und grösse machen
     
    Sojus, 24.11.2006
  8. iCox87

    iCox87 Thread StarterMacUser Mitglied

    Mitglied seit:
    10.08.2006
    Beiträge:
    294
    Zustimmungen:
    5
    also irgendwie verstehe ich das nicht, es ist zwar leicht gesagt aber ich kann es nicht, habe schon einige freunde gefragt die sagen mir ich muss noh Panel einbauen ( weiss nicht mal was das ist ) außerdem is der Quelltext sowas von scheisse gecoded:o :confused:
     
    iCox87, 24.11.2006
Die Seite wird geladen...
Ähnliche Themen - JFrame Applet
  1. marc20031
    Antworten:
    2
    Aufrufe:
    1.109
    marc20031
    17.02.2009
  2. Wolfen1974DE
    Antworten:
    14
    Aufrufe:
    2.875
  3. mcmonk
    Antworten:
    0
    Aufrufe:
    1.018