Hallo,
Ich möchte mit der Hilfe von paint()-Methode Grafik-Objekte erstellen und sie mit MouseListener-Objekten ausstatten, wie im folgenden Code:
[CODE lang="java" title="WidRechteck" highlight="20, 27, 269"]
import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;
class Rechteck extends Frame{
private int x;
private int y;
private int width;
private int height;
private String klick;
ControllerEventHandler ceh;
Rechteck(int x, int y, int width, int height){
this.x = x;
this.y=y;
this.width=width;
this.height=height;
this.addMouseListener(ceh);
}
Rechteck(int x, int y, String klick){
this.x = x;
this.y=y;
this.klick = klick;
this.addMouseListener(ceh);
}
public String getKlick() {
return klick;
}
public void setKlick(String klick) {
this.klick = klick;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public void bewege(int deltaX, int deltaY){
this.x+=deltaX;
this.y+=deltaY;
}
public void scaliere(int deltaWidth, int deltaHeight){
this.width+=deltaWidth;
this.height+=deltaHeight;
}
public void zeichneRechteck(java.awt.Graphics g){
g.drawRect(x, y, this.width, this.height);
}
public void zeichneString(java.awt.Graphics g) {
g.drawString(this.klick, x, y);
}
}
class WidRechteck extends Frame{
Rechteck rechteck;
Rechteck rechteck2;
Rechteck text;
WidRechteck(){
rechteck= new Rechteck(50, 50, 150, 60);
rechteck2= new Rechteck(50, 50, 200, 110);
text = new Rechteck( 300, 300,"ZusatzInfo");
setSize(600, 400);
//setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
dispose();
System.exit(0);
}
});
}
public void paint(Graphics g){
rechteck.zeichneRechteck(g);
rechteck.scaliere(50, 50);
rechteck.zeichneRechteck(g);
g.setFont(new Font("Times New Romans", Font.BOLD,24));
g.setColor(Color.black);
text.zeichneString(g);
}
public static void main(String[] args){
WidRechteck app = new WidRechteck();
}
}
class ControllerEventHandler implements MouseListener{
protected Graphics g;
String klick = "";
public ControllerEventHandler(Graphics g){
this.g = g;
}
public void mouseReleased(MouseEvent me){
klick = ((Graphics)me.getSource()).toString();
System.out.println("mouseListener");
System.out.println(klick);
}
public void mouseClicked(MouseEvent me){}
public void mouseEntered(MouseEvent me){}
public void mouseExited(MouseEvent me){}
public void mousePressed(MouseEvent me){}
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public void bewege(int deltaX, int deltaY){
this.x+=deltaX;
this.y+=deltaY;
}
public void scaliere(int deltaWidth, int deltaHeight){
this.width+=deltaWidth;
this.height+=deltaHeight;
}
public void zeichne(java.awt.Graphics g){
g.drawRect(x, y, this.width, this.height);
}
}
class WidRechteck extends Frame{
Rechteck rechteck;
Rechteck rechteck2;
private ControllerEventHandler ceh;
WidRechteck(){
rechteck= new Rechteck(50, 50, 150, 60);
rechteck2= new Rechteck(50, 50, 200, 110);
setSize(600, 400);
//setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
dispose();
System.exit(0);
}
});
this.addMouseListener(ceh);
}
public void paint(Graphics g){
rechteck.zeichne(g);
rechteck.scaliere(50, 50);
rechteck.zeichne(g);
g.setFont(new Font("Times New Romans", Font.BOLD,24));
g.setColor(Color.black);
g.drawString("Info", 270, 140);
}
public static void main(String[] args){
WidRechteck app = new WidRechteck();
}
}
class ControllerEventHandler implements MouseListener{
protected Graphics g;
String klick = "";
public ControllerEventHandler(Graphics g){
this.g = g;
}
public void mouseReleased(MouseEvent ev){
klick = ((Graphics)ev.getSource()).toString();
System.out.println(klick);
}
public void mouseClicked(MouseEvent me){}
public void mouseEntered(MouseEvent me){}
public void mouseExited(MouseEvent me){}
public void mousePressed(MouseEvent me){}
}[/CODE]
Ich würde gern verstehen warum die Klick-Benachrichtigung nicht angezeigt werden, kann mir eine helfen?
LG
Ich möchte mit der Hilfe von paint()-Methode Grafik-Objekte erstellen und sie mit MouseListener-Objekten ausstatten, wie im folgenden Code:
[CODE lang="java" title="WidRechteck" highlight="20, 27, 269"]
import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;
class Rechteck extends Frame{
private int x;
private int y;
private int width;
private int height;
private String klick;
ControllerEventHandler ceh;
Rechteck(int x, int y, int width, int height){
this.x = x;
this.y=y;
this.width=width;
this.height=height;
this.addMouseListener(ceh);
}
Rechteck(int x, int y, String klick){
this.x = x;
this.y=y;
this.klick = klick;
this.addMouseListener(ceh);
}
public String getKlick() {
return klick;
}
public void setKlick(String klick) {
this.klick = klick;
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public void bewege(int deltaX, int deltaY){
this.x+=deltaX;
this.y+=deltaY;
}
public void scaliere(int deltaWidth, int deltaHeight){
this.width+=deltaWidth;
this.height+=deltaHeight;
}
public void zeichneRechteck(java.awt.Graphics g){
g.drawRect(x, y, this.width, this.height);
}
public void zeichneString(java.awt.Graphics g) {
g.drawString(this.klick, x, y);
}
}
class WidRechteck extends Frame{
Rechteck rechteck;
Rechteck rechteck2;
Rechteck text;
WidRechteck(){
rechteck= new Rechteck(50, 50, 150, 60);
rechteck2= new Rechteck(50, 50, 200, 110);
text = new Rechteck( 300, 300,"ZusatzInfo");
setSize(600, 400);
//setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
dispose();
System.exit(0);
}
});
}
public void paint(Graphics g){
rechteck.zeichneRechteck(g);
rechteck.scaliere(50, 50);
rechteck.zeichneRechteck(g);
g.setFont(new Font("Times New Romans", Font.BOLD,24));
g.setColor(Color.black);
text.zeichneString(g);
}
public static void main(String[] args){
WidRechteck app = new WidRechteck();
}
}
class ControllerEventHandler implements MouseListener{
protected Graphics g;
String klick = "";
public ControllerEventHandler(Graphics g){
this.g = g;
}
public void mouseReleased(MouseEvent me){
klick = ((Graphics)me.getSource()).toString();
System.out.println("mouseListener");
System.out.println(klick);
}
public void mouseClicked(MouseEvent me){}
public void mouseEntered(MouseEvent me){}
public void mouseExited(MouseEvent me){}
public void mousePressed(MouseEvent me){}
}
public int getX(){
return x;
}
public int getY(){
return y;
}
public void bewege(int deltaX, int deltaY){
this.x+=deltaX;
this.y+=deltaY;
}
public void scaliere(int deltaWidth, int deltaHeight){
this.width+=deltaWidth;
this.height+=deltaHeight;
}
public void zeichne(java.awt.Graphics g){
g.drawRect(x, y, this.width, this.height);
}
}
class WidRechteck extends Frame{
Rechteck rechteck;
Rechteck rechteck2;
private ControllerEventHandler ceh;
WidRechteck(){
rechteck= new Rechteck(50, 50, 150, 60);
rechteck2= new Rechteck(50, 50, 200, 110);
setSize(600, 400);
//setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent ev){
dispose();
System.exit(0);
}
});
this.addMouseListener(ceh);
}
public void paint(Graphics g){
rechteck.zeichne(g);
rechteck.scaliere(50, 50);
rechteck.zeichne(g);
g.setFont(new Font("Times New Romans", Font.BOLD,24));
g.setColor(Color.black);
g.drawString("Info", 270, 140);
}
public static void main(String[] args){
WidRechteck app = new WidRechteck();
}
}
class ControllerEventHandler implements MouseListener{
protected Graphics g;
String klick = "";
public ControllerEventHandler(Graphics g){
this.g = g;
}
public void mouseReleased(MouseEvent ev){
klick = ((Graphics)ev.getSource()).toString();
System.out.println(klick);
}
public void mouseClicked(MouseEvent me){}
public void mouseEntered(MouseEvent me){}
public void mouseExited(MouseEvent me){}
public void mousePressed(MouseEvent me){}
}[/CODE]
Ich würde gern verstehen warum die Klick-Benachrichtigung nicht angezeigt werden, kann mir eine helfen?
LG