Jak przekazac referencje do obiektu apletu...

0

Mam maly problem i nie wiem jak go rozwiazac! Mianowicie nie moge wyswietlic tekstu w obszaze apletu bo klasa MyMause nie ma do niego dostepu!!! Z tego co wiem to mozna by przeazac referencje do obiektu apletu w konstruktorze klasy MyMause ale dokonca nie wiem jak to zrobic. Ja wiem ze jak to zapakuje do jednej klasy to bedzie dzialac! Ale ja szukam wlasnie takiego rozwiazania jak napisalem wyzej.

import javax.swing.JApplet;
import java.awt.;
import java.awt.event.
;

public class Aplet5 extends JApplet{
String tekst="";
public void init(){
addMouseListener(new MyMause());
}
public void paint(Graphics gDC){
gDC.clearRect(0, 0, getSize().width, getSize().width);
gDC.drawString(tekst, 20, 20);
}
}
class MyMause implements MouseListener{
String gg="";
public void mouseClicked(MouseEvent evt){
String tekst1="";
int button=evt.getButton();
switch(button){
case MouseEvent.BUTTON1 : tekst1 = "Przycisk1, ";break;
case MouseEvent.BUTTON2 : tekst1 = "Przycisk2, ";break;
case MouseEvent.BUTTON3 : tekst1 = "Przycisk3, ";break;
default : tekst1="";
}
tekst1 += "Wspolrzedne: x = "+evt.getX()+", ";
tekst1 += "y = "+evt.getY();
System.out.println(tekst1);

		//repaint();
	}

	public void mouseEntered (MouseEvent evt){}
	public void mouseExited (MouseEvent evt){}
	public void mousePressed (MouseEvent evt){}
	public void mouseReleased (MouseEvent evt){}

}

Z gory dziekuje za pomoc!!!

0

Chyba tak

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

public class Aplet5 extends JApplet{
        String tekst="";
        public void init(){
                addMouseListener(new MyMause(this));
        }
        public void paint(Graphics gDC){
                gDC.clearRect(0, 0, getSize().width, getSize().width);
                gDC.drawString(tekst, 20, 20);
        }
}
class MyMause implements MouseListener
{        
        String gg="";
        Aplet5 ap;
        public MyMause(Aplet5 ap)
        {
             this.ap=ap;
        }        
        public void mouseClicked(MouseEvent evt){        
                String tekst1="";
                        int button=evt.getButton();
                        switch(button){
                        case MouseEvent.BUTTON1 : tekst1 = "Przycisk1, ";break;
                        case MouseEvent.BUTTON2 : tekst1 = "Przycisk2, ";break;
                        case MouseEvent.BUTTON3 : tekst1 = "Przycisk3, ";break;
                        default : tekst1="";
                        }
                        tekst1 += "Wspolrzedne: x = "+evt.getX()+", ";
                        tekst1 += "y = "+evt.getY();
                        System.out.println(tekst1);
                       
                        //repaint();
                }
       
                public void mouseEntered (MouseEvent evt){}
                public void mouseExited (MouseEvent evt){}
                public void mousePressed (MouseEvent evt){}
                public void mouseReleased (MouseEvent evt){}
}
0

Witaj bogdans_niezalogowany to w sumie by tak moglo byc ale niesety dalej nie wyswietla w oknie apletu!!!

0

Bo nie ma polecenia wyświetlającego

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

public class Aplet5 extends JApplet
{
    String tekst="";
    public void init()
    {
        addMouseListener(new MyMause(this));
    }
    public void paint(Graphics gDC)
    {
        gDC.clearRect(0, 0, getSize().width, getSize().width);
        gDC.drawString(tekst, 20, 20);
    }
}
class MyMause extends MouseAdapter
{
    String gg="";
    Aplet5 ap;
    public MyMause(Aplet5 ap)
    {
        this.ap=ap;
    }
    public void mouseClicked(MouseEvent evt)
    {
        String tekst1="";
        int button=evt.getButton();
        switch(button)
        {
            case MouseEvent.BUTTON1 : tekst1 = "Przycisk1, ";break;
            case MouseEvent.BUTTON2 : tekst1 = "Przycisk2, ";break;
            case MouseEvent.BUTTON3 : tekst1 = "Przycisk3, ";break;
            default : tekst1="";
        }
        tekst1 += "Wspolrzedne: x = "+evt.getX()+", ";
        tekst1 += "y = "+evt.getY();
        ap.tekst=tekst1;
        ap.repaint();
    }
}

troche skróciłem

0

Dzieki bogdans_niezalogowany jestes WIELKI!!! Tego rozwiazania szukalem!!!

0

Tylko mozna dodac ze MouseEvent ma metode getSource() ktora zwraca Object ktory jest zrodlem zdarzenia, w tym przypadku aplet, albo getComponent() ktora zwraca Component, w tym przypadku aplet. Wystarczy wykonac rzutowaniei juz masz dostep do tego co chcesz. Ale rozwiazanie bogdansa jak najbardziej w porzadku ;-)

0

Witaj eciepecie twoje rozwiazanie mie zaskoczylo nie wiedzialem ze MouseEvent ma taka metode dokonalem rzutowania i dziala :-) Wielkie dzieki Tobie i koledze wyzej POZDRAWIAM

1 użytkowników online, w tym zalogowanych: 0, gości: 1