Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 27 juil. 2007 à 12:22
Salut,
passe par la classe java.awt.geom.Area qui permet de faire ce que tu veux
Voici un exemple assez simple de ce que tu peux faire (Je l'ai trouvé sur le web) :
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.Shape;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.geom.Area;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
String option = (String) mOptions.getSelectedItem();
if (option.equals("outline")) {
// draw the outlines and return.
g2.draw(mShapeOne);
g2.draw(mShapeTwo);
return;
}
// Create Areas from the shapes.
Area areaOne = new Area(mShapeOne);
Area areaTwo = new Area(mShapeTwo);
// Combine the Areas according to the selected option.
if (option.equals("add"))
areaOne.add(areaTwo);
else if (option.equals("intersection"))
areaOne.intersect(areaTwo);
else if (option.equals("subtract"))
areaOne.subtract(areaTwo);
else if (option.equals("exclusive or"))
areaOne.exclusiveOr(areaTwo);
// Fill the resulting Area.
g2.setPaint(Color.orange);
g2.fill(areaOne);
// Draw the outline of the resulting Area.
g2.setPaint(Color.black);
g2.draw(areaOne);
}
public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame f = new JFrame();
f.setTitle("Test");
f.setDefaultCloseOperation(3);
f.add(new CombiningShapes());
f.setSize(220, 220);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
}
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."