Tue Nov 11, 2008 5:26 pm
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.border.TitledBorder;
public class ClipAreaExample extends JFrame {
Canvas1 canvas;
JButton button1, button2;
public ClipAreaExample() {
super("Clip Area");
Container contentPane = getContentPane();
canvas = new Canvas1();
contentPane.add(canvas);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(1, 2));
button1 = new JButton("Clip1");
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
canvas.clip1 = true;
canvas.clip2= false;
canvas.repaint();
}
});
button2 = new JButton("Clip2");
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
canvas.clip2 = true;
canvas.repaint();
}
});
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(button1);
buttonGroup.add(button2);
panel.add(button1);
panel.add(button2);
contentPane.add(BorderLayout.SOUTH, panel);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
System.exit(0);
}
});
setVisible(true);
}
public static void main(String arg[]) {
new ClipAreaExample();
}
}
class Canvas1 extends JPanel{
boolean clip1 = true;
boolean clip2 = false;
Canvas1() {
setSize(450, 400);
setBackground(Color.white);
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
int wi = getSize().width;
int ht = getSize().height;
if (clip1) {
Rectangle2D rectangle = new Rectangle2D.Double(wi / 4.0f,
ht / 4.0f, wi / 2.0f,ht / 2.0f);
g2d.setClip(rectangle);
g2d.setColor(Color.cyan);
g2d.fillRect(0, 0, wi, ht);
}
if (clip2) {
Rectangle rect = new Rectangle(wi / 2, ht / 2, wi / 2, ht / 2);
g2d.clip(rect);
g2d.setColor(Color.red);
g2d.fillRect(0, 0, wi, ht);
}
}
}
Codemiles.com is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com
Powered by phpBB © phpBB Group.