Home > サンプル集 > Swingサンプル集 > 図形の合成-Swing版-
図形の合成-Swing版-
このページには、以下のサンプルを掲載しています。
下の項目をクリックをすると各サンプルにジャンプします。
※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
- 図形の切り抜き ( BooleanSample01.java )
- 図形の合成(論理和) ( BooleanSample02.java )
- 図形の合成(論理積)( BooleanSample03.java )
- 図形の合成(排他的論理和)( BooleanSample04.java )
■図形の切り抜き
[ サンプルプログラムのソースコード - BooleanSample01.java - ]
- import javax.swing.JFrame;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.geom.Area;
- import java.awt.geom.Ellipse2D;
- public class BooleanSample01 extends JFrame {
- private static final long serialVersionUID = 1L;
- public BooleanSample01() {
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public void paint(Graphics g){
- super.paint(g);
- Graphics2D g2 = (Graphics2D)g;
- g2.clearRect(0, 0, getWidth(), getHeight());
- Ellipse2D e1 = new Ellipse2D.Double(40,50,100,100);
- Ellipse2D e2 = new Ellipse2D.Double(45,55,100,100);
- Area a1 = new Area(e1);
- Area a2 = new Area(e2);
- a2.subtract(a1);
- g2.setColor(Color.YELLOW);
- g2.fill(a2);
- g2.setColor(Color.BLACK);
- g2.draw(a2);
- }
- public static void main(String[] args) {
- JFrame f = new BooleanSample01();
- f.setTitle("Swingサンプル(図形の合成:切抜き)");
- f.setResizable(false);
- f.setSize(200,200);
- f.setBackground(Color.WHITE);
- f.setVisible(true);
- }
- }
|
[ サンプルプログラムの実行結果 ]
■図形の合成(論理和)
[ サンプルプログラムのソースコード - BooleanSample02.java - ]
- import javax.swing.JFrame;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.geom.Area;
- import java.awt.geom.Ellipse2D;
- public class BooleanSample02 extends JFrame {
- private static final long serialVersionUID = 1L;
- public BooleanSample02() {
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public void paint(Graphics g){
- super.paint(g);
- Graphics2D g2 = (Graphics2D)g;
- g2.clearRect(0, 0, getWidth(), getHeight());
- Ellipse2D e1 = new Ellipse2D.Double(50,50,100,100);
- Ellipse2D e2 = new Ellipse2D.Double(20,80,160,40);
- Area a1 = new Area(e1);
- Area a2 = new Area(e2);
- a2.add(a1);
- g2.setColor(Color.MAGENTA);
- g2.fill(a2);
- g2.setColor(Color.BLACK);
- g2.draw(a2);
- }
- public static void main(String[] args) {
- JFrame f = new BooleanSample02();
- f.setTitle("Swingサンプル(図形の合成:論理和)");
- f.setResizable(false);
- f.setSize(200,200);
- f.setBackground(Color.WHITE);
- f.setVisible(true);
- }
- }
|
[ サンプルプログラムの実行結果 ]
■図形の合成(論理積)
[ サンプルプログラムのソースコード - BooleanSample03.java - ]
- import javax.swing.JFrame;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.geom.Area;
- import java.awt.geom.Ellipse2D;
- public class BooleanSample03 extends JFrame {
- private static final long serialVersionUID = 1L;
- public BooleanSample03() {
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public void paint(Graphics g){
- super.paint(g);
- Graphics2D g2 = (Graphics2D)g;
- g2.clearRect(0, 0, getWidth(), getHeight());
- Ellipse2D e1 = new Ellipse2D.Double(-80,10,200,200);
- Ellipse2D e2 = new Ellipse2D.Double(80,10,200,200);
- Area a1 = new Area(e1);
- Area a2 = new Area(e2);
- a2.intersect(a1);
- g2.setColor(Color.CYAN);
- g2.fill(a2);
- g2.setColor(Color.BLACK);
- g2.draw(a2);
- }
- public static void main(String[] args) {
- JFrame f = new BooleanSample03();
- f.setTitle("Swingサンプル(図形の合成:論理積)");
- f.setResizable(false);
- f.setSize(200,200);
- f.setBackground(Color.WHITE);
- f.setVisible(true);
- }
- }
|
[ サンプルプログラムの実行結果 ]
■図形の合成(排他的論理和)
[ サンプルプログラムのソースコード - BooleanSample04.java - ]
- import javax.swing.JFrame;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.geom.Area;
- import java.awt.geom.Ellipse2D;
- public class BooleanSample04 extends JFrame {
- private static final long serialVersionUID = 1L;
- public BooleanSample04() {
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- }
- public void paint(Graphics g){
- super.paint(g);
- Graphics2D g2 = (Graphics2D)g;
- g2.clearRect(0, 0, getWidth(), getHeight());
- Ellipse2D e1 = new Ellipse2D.Double(10,50,100,100);
- Ellipse2D e2 = new Ellipse2D.Double(80,50,100,100);
- Area a1 = new Area(e1);
- Area a2 = new Area(e2);
- a2.exclusiveOr(a1);
- g2.setColor(Color.ORANGE);
- g2.fill(a2);
- g2.setColor(Color.BLACK);
- g2.draw(a2);
- }
- public static void main(String[] args) {
- JFrame f = new BooleanSample04();
- f.setTitle("Swingサンプル(図形の合成:排他的論理和)");
- f.setResizable(false);
- f.setSize(200,200);
- f.setBackground(Color.WHITE);
- f.setVisible(true);
- }
- }
|
[ サンプルプログラムの実行結果 ]
|