Problem beim Umwandeln eines Applets in eine Applikation

Status
Nicht offen für weitere Antworten.

Oni

Top Contributor
Servus,
ich habe aus einem applet eine applikation gemacht und habe jetzt folgendes problem:
der inhalt des ehemaligen applet wir ein bisschen vom oberen rand des fensters verdeckt. kann ich das ganze jetzt irgendwie nach unten schieben (den inhalt des fensters)??

Code:
public class einsP extends Frame implements ActionListener, KeyListener, WindowListener
{
          
     public static void main(String[] args)
     	{
          Frame f = new einsP();
          f.setLocation(200, 100);
          f.setSize(500, 500);
          f.setVisible(true);
          }

    	public einsP()
     	{
          setTitle("");
          setLayout(null);
          goButton = new Button("Berechne");
          add(goButton);                                 //GOBUTTON
          goButton.setBounds(250, 300, 75, 25);
          goButton.addActionListener(this);
          goButton.addKeyListener(this);

          this.addWindowListener(this);
          }

         public void windowClosing(WindowEvent event)
     	{
          System.exit(0);
          }

        public void paint(Graphics g)
            {
            e.drawString("", 360, 125);
            e.drawString("", 360, 125);   
             e.drawString("", 360, 125);
            }

        usw..
 
Leite nicht von Frame, sondern von Component ab. Und danach setzt du eine Instanz dieser Component auf ein Frame.
 
könntest du mir das in einem beispiel zeigen?


Code:
public class einsP extends Component implements ActionListener, KeyListener, WindowListener
{

usw.

public static void main(String[] args)
     	{
          Frame f = new Frame();
          f.setLocation(200, 100);
          f.setSize(500, 500);
          f.setVisible(true);
          }

	public Frame()              
     	{
                 }
so geht das nicht wie macht man das richtig?
 
Code:
public class einsP extends Component implements ActionListener, KeyListener, WindowListener
{

usw.

public static void main(String[] args)
     	{
          Frame f = new Frame();
          f.add(this);
          f.setLocation(200, 100);
          f.setSize(500, 500);
          f.setVisible(true);
          }

	public einsP()              
     	{
         }

usw.
 
danke,
aber ich bekomme dann die fehlermeldung

einsP.java:31: non-static variable this cannot be referenced from a static cont
xt
f.add(this);
^
einsP.java:39: cannot resolve symbol
symbol : method setTitle (java.lang.String)
location: class einsP
setTitle("Aktien Rechner");
^
einsP.java:40: cannot resolve symbol
symbol : method setLayout (<nulltype>)
location: class einsP
setLayout(null);
^
einsP.java:42: add(java.awt.PopupMenu) in java.awt.Component cannot be applied
o (java.awt.Label)
add(feld1Label);
^
 
Also AlArenal, einfach this in einem statischen Kontext verwenden :noe: :bae:

Code:
public class EinsP extends Component implements ActionListener, KeyListener, WindowListener{

usw.

   public static void main(String[] args){
      EinsP eins = new EinsP();
      Frame f = new Frame();

      f.add(eins);

      f.setLocation(200, 100);
      f.setSize(500, 500);
      f.setVisible(true);
   }

   public EinsP(){
   }
usw.
 
Das läuft immer noch nicht.

Code:
public class einsP extends Component implements ActionListener, KeyListener, WindowListener
{
     private float 

     public static void main(String[] args)
     	{
          einsP eins = new einsP();
          Frame f = new Frame();

          f.add(eins);
          f.setLocation(200, 100);
          f.setSize(500, 500);
          f.setVisible(true);
          }

    	public einsP()
     	{
          setTitle("Aktien Rechner");
          setLayout(null);
          feld1Label = new Label("Anteile:");
          add(feld1Label);
          feld1Label.setBounds(130, 210, 110, 25);
	 	anteilEingabe = new TextField(10);            // TEXTFELD ANTEILE
          add(anteilEingabe);
          anteilEingabe.setBounds(250, 210, 75, 25);
          anteilEingabe.addActionListener(this);

usw.
die fehlermeldung kommt.
C:\Dokumente und Einstellungen\faerberm\Desktop\Java\Aktien Rechner>javac einsP.
java
einsP.java:41: cannot resolve symbol
symbol : method setTitle (java.lang.String)
location: class einsP
setTitle("Aktien Rechner");
^
einsP.java:42: cannot resolve symbol
symbol : method setLayout (<nulltype>)
location: class einsP
setLayout(null);
^
einsP.java:44: add(java.awt.PopupMenu) in java.awt.Component cannot be applied t
o (java.awt.Label)
add(feld1Label);
^
einsP.java:47: add(java.awt.PopupMenu) in java.awt.Component cannot be applied t
o (java.awt.TextField)
add(anteilEingabe);
^
 
hm, ok, anstelle von Component muss Container her (sorry, das hab ich übersehen).

Und "setTitle" kannst du nicht auf einen Container/Component anwenden, nur auf das Frame direkt.

Also, nächster Versuch:
Code:
public class einsP extends Container implements ActionListener, KeyListener, WindowListener
{
     private float

     public static void main(String[] args)
        {
          einsP eins = new einsP();
          Frame f = new Frame();

          f.setTitle("Aktien Rechner");
          f.add(eins);
          f.setLocation(200, 100);
          f.setSize(500, 500);
          f.setVisible(true);
          }

       public einsP()
        {
          setLayout(null);
          feld1Label = new Label("Anteile:");
          add(feld1Label);
          feld1Label.setBounds(130, 210, 110, 25);
       anteilEingabe = new TextField(10);            // TEXTFELD ANTEILE
          add(anteilEingabe);
          anteilEingabe.setBounds(250, 210, 75, 25);
          anteilEingabe.addActionListener(this);

usw.
 
Beni hat gesagt.:
Also AlArenal, einfach this in einem statischen Kontext verwenden :noe: :bae:

Oops, da war ich wieder böse und hab nicht genau hingesehen 😉

Für den Fall kann man noch immer ne statische Variable reinkloppen, die im Konstruktor auf this setzen und dann verwenden 😛
 
gut das funktioniert jetzt aber ein problem habe ich noch.

Code:
public class einsP extends Container implements ActionListener, KeyListener, WindowListener
{
         private int usw.

     public static void main(String[] args)
     	{
          einsP eins = new einsP();
          Frame f = new Frame();

          f.setTitle("Aktien Rechner");
          f.add(eins);
          f.setLocation(200, 100);
          f.setSize(500, 500);
          f.setVisible(true);
          }

    	public einsP()
     	{
          setLayout(null);
          feld1Label = new Label("Anteile:");
          add(feld1Label);
          feld1Label.setBounds(130, 210, 110, 25);
	 	anteilEingabe = new TextField(10);            // TEXTFELD ANTEILE
          add(anteilEingabe);
          anteilEingabe.setBounds(250, 210, 75, 25);
          anteilEingabe.addActionListener(this);
          goButton = new Button("Berechne");
          add(goButton);                                 //GOBUTTON
          goButton.setBounds(250, 300, 75, 25);
          goButton.addActionListener(this);
          goButton.addKeyListener(this);
          
            usw.

          this.addWindowListener(this);
          }

fehlermeldung

C:\Dokumente und Einstellungen\faerberm\Desktop\Java\Aktien Rechner>javac einsP.
java
einsP.java:73: cannot resolve symbol
symbol : method addWindowListener (einsP)
location: class einsP
einsP.addWindowListener(this);
^
1 error
 
ups, falsche fehlermeldung
Code:
C:\Dokumente und Einstellungen\faerberm\Desktop\Java\Aktien Rechner>javac einsP.
java
einsP.java:73: cannot resolve symbol
symbol  : method addWindowListener (einsP)
location: class einsP
          this.addWindowListener(this);
          ^
1 error
so sollte die eigentlich aussehn, das andere war nur ein test
 
Ein WindowListener kannst du nur einem Window (wie z.B. das Frame) hinzufügen. Ist genau das gleiche wie mit dem Titel...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben