ik zit met een klein probleem ik moet een image splitsen in 32 stukken en dan projecteren op mijn scherm.
die image wordt getoond mooi in 32 stukken met spatie erbij enz nu zou ik moeten kunnen klikken met de muis op elke gesplitste image
maar ik weet bij god niet hoe ik die muis event moet genereren om op die image te klikken hier is een stuk van de code die ik nu heb
dit is in men class
om de image op te halen
public GetImages(String imageNaam,int Rows,int Cols)
{
this.rows = Rows;
this.cols = Cols;
this.ImageNaam = imageNaam;
try
{
Image = ImageIO.read(new File(imageNaam));
}
catch (IOException e)
{
e.printStackTrace();
System.out.println("De fout is "+e.getMessage());
}
}
//Split de image in stukken
public final void SplitImage()
{
// 1. Bepaal het aantal stukken van het geheel en bereken de groote van elk stuk
imageStukjes = rows * cols;
stukjeWidth = Image.getWidth() / cols;
stukjeHeight = Image.getHeight() / rows;
// 2. Defineer een image array die de imagestukjes bewaard
int count = 0;
setImgs(new BufferedImage[imageStukjes]);
// 3. Vul de Image array met de gesplitste image's stukken
for (int x = 0; x < rows; x++)
{
for (int y = 0; y < cols; y++)
{
//Initalizeer de image array met de imagestukjes
getImgs()[count] = new BufferedImage(stukjeWidth, stukjeHeight, Image.getType());
// Teken de image stukjes
Graphics2D gr = getImgs()[count++].createGraphics();
gr.drawImage(Image, 0, 0, stukjeWidth, stukjeHeight, stukjeWidth * y, stukjeHeight * x, stukjeWidth * y + stukjeWidth, stukjeHeight * x + stukjeHeight, null);
gr.dispose();
}
}
}
om dan te tonen in mijn applet
// //Paint de SplittedImage
public void ShowSplittedImage(Graphics g)
{
SplitImage();
x = 15;
y = 0;
setTijdelijkeArray(new BufferedImage[getImgs().length]);
setTijdelijkeArray(getImgs());
for(int i = 0; i < getTijdelijkeArray().length;i++)
{
g.drawString(imageFileNames, x+20, y+110);
g.drawImage(getTijdelijkeArray(), x, y, null);
x +=110;
if(x >= 880)
{
x = 15;
y +=110;
}
}
}
applet code =>
public class appPicto extends Applet
{
ImageSplitter split;
public void init()
{
setSize(900,500);
setLayout(new BorderLayout());
//om de image op te halen
img = new GetImages("PictogramEx3BJava2012.png",4,8);
}
dan om te tekenen
public void paint(Graphics g)
{
img.ShowSplittedImage(g);
}
nu zou ik nog een mousListener nodig hebben om ellke image apart te kunnen aan klikken maar weet niet hoe ik de coordinaten moet instellen
die image wordt getoond mooi in 32 stukken met spatie erbij enz nu zou ik moeten kunnen klikken met de muis op elke gesplitste image
maar ik weet bij god niet hoe ik die muis event moet genereren om op die image te klikken hier is een stuk van de code die ik nu heb
dit is in men class
om de image op te halen
public GetImages(String imageNaam,int Rows,int Cols)
{
this.rows = Rows;
this.cols = Cols;
this.ImageNaam = imageNaam;
try
{
Image = ImageIO.read(new File(imageNaam));
}
catch (IOException e)
{
e.printStackTrace();
System.out.println("De fout is "+e.getMessage());
}
}
//Split de image in stukken
public final void SplitImage()
{
// 1. Bepaal het aantal stukken van het geheel en bereken de groote van elk stuk
imageStukjes = rows * cols;
stukjeWidth = Image.getWidth() / cols;
stukjeHeight = Image.getHeight() / rows;
// 2. Defineer een image array die de imagestukjes bewaard
int count = 0;
setImgs(new BufferedImage[imageStukjes]);
// 3. Vul de Image array met de gesplitste image's stukken
for (int x = 0; x < rows; x++)
{
for (int y = 0; y < cols; y++)
{
//Initalizeer de image array met de imagestukjes
getImgs()[count] = new BufferedImage(stukjeWidth, stukjeHeight, Image.getType());
// Teken de image stukjes
Graphics2D gr = getImgs()[count++].createGraphics();
gr.drawImage(Image, 0, 0, stukjeWidth, stukjeHeight, stukjeWidth * y, stukjeHeight * x, stukjeWidth * y + stukjeWidth, stukjeHeight * x + stukjeHeight, null);
gr.dispose();
}
}
}
om dan te tonen in mijn applet
// //Paint de SplittedImage
public void ShowSplittedImage(Graphics g)
{
SplitImage();
x = 15;
y = 0;
setTijdelijkeArray(new BufferedImage[getImgs().length]);
setTijdelijkeArray(getImgs());
for(int i = 0; i < getTijdelijkeArray().length;i++)
{
g.drawString(imageFileNames, x+20, y+110);
g.drawImage(getTijdelijkeArray(), x, y, null);
x +=110;
if(x >= 880)
{
x = 15;
y +=110;
}
}
}
applet code =>
public class appPicto extends Applet
{
ImageSplitter split;
public void init()
{
setSize(900,500);
setLayout(new BorderLayout());
//om de image op te halen
img = new GetImages("PictogramEx3BJava2012.png",4,8);
}
dan om te tekenen
public void paint(Graphics g)
{
img.ShowSplittedImage(g);
}
nu zou ik nog een mousListener nodig hebben om ellke image apart te kunnen aan klikken maar weet niet hoe ik de coordinaten moet instellen