tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
1710
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Skady Skady ist offline Grünschnabel
    Registriert seit
    Nov 2008
    Beiträge
    3
    Hallo,
    nachdem ich nun mein Programm als JFrame fertig gestellt habe würde ich dies nun gerne in ein Applet / JApplet einbinden.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
     
    import java.awt.*;
    import javax.swing.*;
     
     
    public class Futest extends JApplet
    {
        public Futest()
        {
            getContentPane().add(new Darstellung());
        }
    }

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
     
    import java.applet.*;
    import java.net.URL;
     
    /**
     ----------
     */
    public class Darstellung extends JFrame implements ActionListener
    {
        // Variablen
        ......
        
        
        
        // Konstruktor
        public Darstellung()
        {
            // Titel
            setTitle(titel);
            
            // Beendet die Anwendung mit System.exit(0)
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            // Größe
            setSize(GroeßeX,GroeßeY);
            
            // Position
            //setLocation(PositionX,PositionY);
            
            // Zentriere
            setLocationRelativeTo(null);
            
            // Setzte die MenuBar
            createMenuBar();
            
            // Immer im Vordergrund
            setAlwaysOnTop(startAlwaysOnTop);
            
            // Initialisierung der Uhr
            uhr = new Uhr();
            if(!starte24StdFormat) uhr.wechselZeitFormat();
            
            // Initialisiere die Darstellung
            grafik = new Grafik(uhr, startDigital);
            
            // Füge die Grafik zum Content Pane hinzu
            getContentPane().add(grafik);
            
            // Sichtbarkeit
            setVisible(true);
            
            // Initialisierung des Timers
            timer = new Timer(1000, this);
            timer.start();
            
            try
            {
                clip = Applet.newAudioClip(new URL("file:///C:\\sound.wav"));
            }
            catch(Exception e)
            {
                System.out.println(e);
            }
        }
    ......
    }

    Nach dem ausführen bekomme ich nun folgende Meldung:
    Ausnahme: access denied (java.lang.RuntimePermission exitVM.0)

    Ich hoffe jemand man von euch kann mir weiterhelfen und sagen was daran falsch ist bzw. sagen wie man so etwas richtig macht.

    Vielen dank schonmal für eure Hilfe.

    Viele Grüße

    Skady


    P.S. Mein erster Gedanke war der nicht erlaubte Dateizugriff auf C:, leider ist dieser nicht das Problem.
     

  2. #2
    Xandro Xandro ist offline - Mistkerl -
    Registriert seit
    Oct 2005
    Beiträge
    255
    Moin,

    erst einmal würde ich ganz einfach behaupten, dass das was Du da versuchst - nämlich einen JFrame einem Container zuzufügen - absolut nicht funktioniert.
    Hab das gestern (aus Versehen) auch gemacht und da gab es ne dicke Exception.
    In Deinem Fall verkörpert das Applet ja bereits einen "Frame", im Sinne des anzuzeigenden Grundgerüsts auf der Webseite.

    Deine Exception selbst scheint sich aber auf etwas anderes zu beziehen.
    Zeilenangabe bzw. den passenden Codeteil für die Exception wäre mal interessant zu sehen.

    Gruß,
    Xan
     

  3. #3
    Skady Skady ist offline Grünschnabel
    Registriert seit
    Nov 2008
    Beiträge
    3
    Aufgrund deiner Antwort habe ich versucht das Applet anders zu starten.

    Folgendes kam dabei rum:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    java.lang.IllegalArgumentException: adding a window to a container
        at java.awt.Container.addImpl(Container.java:1022)
        at java.awt.Container.add(Container.java:352)
        at Futest.<init>(Futest.java:10)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at bluej.runtime.ExecServer$3.run(ExecServer.java:874)

    Zeile 10 ist wie bereits erwartet:
    Code :
    1
    
    getContentPane().add(new Darstellung());


    Ich muss zugeben, dass ich noch mit bluej arbeite. Die obige Meldung entstand diesmal durch direkten Aufruf von newfutest(). Vorher hatte ich immer "Run Applet" ausgewählt.

    Ich nehme an das der nächste Schritt, Richtung lauffähiges Applet, eine Änderung der Klasse Darstellung auf JPanel ist oder?
     

  4. #4
    Xandro Xandro ist offline - Mistkerl -
    Registriert seit
    Oct 2005
    Beiträge
    255
    Moin,

    Du brauchst einfach nur die Applet-Klasse wie eine Frame-Klasse zu behandeln - natürlich mit minimierter Funktionalität (siehe API).
    Es ist sozusagen Dein MainFrame, auf dem sich alles abspielt.
    Wolltest Du eben noch alle möglichen Dinge per JFrame realisieren, brauchst Du dies nur auf die Applet-Klasse anwenden.
    Somit fällt der JFrame komplett raus - es sei denn Du willst ein Applet, welches einen JFrame aufruft.

    Die ganzen Komponenten auf ein JPanel zu packen, um dieses dann dem Applet hinzuzufügen, ist wohl eine annehmbare Lösung.

    Gruß,
    Xan
     

  5. #5
    Skady Skady ist offline Grünschnabel
    Registriert seit
    Nov 2008
    Beiträge
    3
    Na gut dann warte ich lieber erstmal ab ob sich der Dozent auch damit zufrieden gibt, ansonsten wird das noch fix geändert.

    Danke jedenfalls für die schnelle Hilfe.
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 12.12.10, 10:32
  2. Antworten: 2
    Letzter Beitrag: 14.05.09, 11:02
  3. Aus einem JFrame anderes JFrame starten
    Von maddos im Forum Java
    Antworten: 3
    Letzter Beitrag: 09.08.07, 12:24
  4. Ein JFrame aus einem anderem JFrame aufrufen!
    Von Lautsprecher im Forum Java
    Antworten: 1
    Letzter Beitrag: 14.11.05, 09:37
  5. Antworten: 2
    Letzter Beitrag: 07.09.05, 12:16