Java Swing プログラミング サンプル

ベジェ曲線を含む図形を描画するJavaSwingのサンプルです。太線や破線描画、グラデーション、テクスチャーマッピングなどのサンプルを掲載しています。

Home > サンプル集 > Swingサンプル集 > ベジェ曲線を含む図形の描画-Swing版-


ベジェ曲線を含む図形の描画-Swing版-

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
  1. ベジェ曲線を含む図形の描画 - Swing版 -(BezierSample01.java )  
  2. ベジェ曲線を含む図形の描画 - Swing版 -(塗りつぶし) ( BezierSample02.java )  
  3. ベジェ曲線を含む図形の描画 - Swing版 -(太線) ( BezierSample03.java )  
  4. ベジェ曲線を含む図形の描画 - Swing版 -(破線) ( BezierSample04.java )  
  5. ベジェ曲線を含む図形の描画 - Swing版 -(太線&塗りつぶし) ( BezierSample05.java )  
  6. ベジェ曲線を含む図形の描画 - Swing版 -(破線&塗りつぶし) ( BezierSample06.java )  
  7. ベジェ曲線を含む図形の描画 - Swing版 -(グラデーション) ( BezierSample07.java )  
  8. ベジェ曲線を含む図形の描画 - Swing版 -(テクスチャーパターン) ( BezierSample08.java )  
  9. ベジェ曲線を含む図形の描画 - Swing版 - (回転)( BezierSample09.java )  

1. ベジェ曲線を含む図形の描画

[ サンプルプログラムのソースコード - BezierSample01.java - ]
  1. import javax.swing.JFrame;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.geom.GeneralPath;
  6. public class BezierSample01 extends JFrame {
  7.   private static final long serialVersionUID = 1L;
  8.   public BezierSample01() {
  9.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  10.   }
  11.   public void paint(Graphics g){
  12.     super.paint(g);
  13.     Graphics2D g2 = (Graphics2D)this.getGraphics();
  14.     g2.setPaint(Color.BLUE);
  15.     GeneralPath p = new GeneralPath();
  16.     p.moveTo( 40, 60);
  17.     p.lineTo(140, 60);
  18.     p.curveTo(100, 85, 100, 110, 140, 160);
  19.     p.lineTo( 30, 160);
  20.     p.curveTo( 80, 150, 80, 150,  40,  60);
  21.     p.closePath();
  22.     g2.draw(p);
  23.   }
  24.   public static void main(String[] args) {
  25.     JFrame f = new BezierSample01();
  26.     f.setTitle("Swingサンプル(ベジェ曲線を含む図形の描画)");
  27.     f.setSize(200,200);
  28.     f.setBackground(Color.WHITE);
  29.     f.setVisible(true);
  30.   }
  31. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形のアプレット版サンプル
Swing版サンプルの他の図形描画
四角形 / 角の丸い四角形 / / 楕円 / 直線 / 連続直線 / 多角形 / ベジェ曲線 / 円弧 / 楕円弧 / 弓形 / 扇形


2. ベジェ曲線を含む図形の描画(塗りつぶし)

[ サンプルプログラムのソースコード - BezierSample02.java - ]
  1. import javax.swing.JFrame;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.geom.GeneralPath;
  6. public class BezierSample02 extends JFrame {
  7.   private static final long serialVersionUID = 1L;
  8.   public BezierSample02() {
  9.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  10.   }
  11.   public void paint(Graphics g){
  12.     super.paint(g);
  13.     Graphics2D g2 = (Graphics2D)this.getGraphics();
  14.     g2.setPaint(Color.ORANGE);
  15.     GeneralPath p = new GeneralPath();
  16.     p.moveTo( 40, 60);
  17.     p.lineTo(140, 60);
  18.     p.curveTo(100, 85, 100, 110, 140, 160);
  19.     p.lineTo( 30, 160);
  20.     p.curveTo( 80, 150, 80, 150,  40,  60);
  21.     p.closePath();
  22.     g2.fill(p);
  23.   }
  24.   public static void main(String[] args) {
  25.     JFrame f = new BezierSample02();
  26.     f.setTitle("Swingサンプル(ベジェ曲線を含む図形の描画)");
  27.     f.setSize(200,200);
  28.     f.setBackground(Color.WHITE);
  29.     f.setVisible(true);
  30.   }
  31. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(塗りつぶし)のアプレット版サンプル
Swing版サンプルの他の図形描画
四角形(塗りつぶし) / 角の丸い四角形(塗りつぶし) / 円(塗りつぶし) / 楕円(塗りつぶし) / 多角形(塗りつぶし) / 弓形(塗りつぶし) / 扇形(塗りつぶし)


3. ベジェ曲線を含む図形の描画(太線)

[ サンプルプログラムのソースコード - BezierSample03.java - ]
  1. import javax.swing.JFrame;
  2. import java.awt.BasicStroke;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.geom.GeneralPath;
  7. public class BezierSample03 extends JFrame {
  8.   private static final long serialVersionUID = 1L;
  9.   public BezierSample03() {
  10.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   }
  12.   public void paint(Graphics g){
  13.     super.paint(g);
  14.     Graphics2D g2 = (Graphics2D)this.getGraphics();
  15.     g2.setPaint(Color.BLUE);
  16.     g2.setStroke(new BasicStroke(5.0f));
  17.     GeneralPath p = new GeneralPath();
  18.     p.moveTo( 40, 60);
  19.     p.lineTo(140, 60);
  20.     p.curveTo(100, 85, 100, 110, 140, 160);
  21.     p.lineTo( 30, 160);
  22.     p.curveTo( 80, 150, 80, 150,  40,  60);
  23.     p.closePath();
  24.     g2.draw(p);
  25.   }
  26.   public static void main(String[] args) {
  27.     JFrame f = new BezierSample03();
  28.     f.setTitle("Swingサンプル(ベジェ曲線を含む図形の描画)");
  29.     f.setSize(200,200);
  30.     f.setBackground(Color.WHITE);
  31.     f.setVisible(true);
  32.   }
  33. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(太線)のアプレット版サンプル
Swing版サンプルの他の図形描画
四角形(太線) / 角の丸い四角形(太線) / 円(太線) / 楕円(太線) / 直線(太線) / 連続直線(太線) / 多角形(太線) / ベジェ曲線(太線) / 円弧(太線) / 楕円弧(太線) / 弓形(太線) / 扇形(太線)


4. ベジェ曲線を含む図形の描画(太線&塗りつぶし)

[ サンプルプログラムのソースコード - BezierSample04.java - ]
  1. import javax.swing.JFrame;
  2. import java.awt.BasicStroke;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.geom.GeneralPath;
  7. public class BezierSample04 extends JFrame {
  8.   private static final long serialVersionUID = 1L;
  9.   public BezierSample04() {
  10.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   }
  12.   public void paint(Graphics g){
  13.     super.paint(g);
  14.     Graphics2D g2 = (Graphics2D)this.getGraphics();
  15.     g2.setStroke(new BasicStroke(5.0f));
  16.     GeneralPath p = new GeneralPath();
  17.     p.moveTo( 40, 60);
  18.     p.lineTo(140, 60);
  19.     p.curveTo(100, 85, 100, 110, 140, 160);
  20.     p.lineTo( 30, 160);
  21.     p.curveTo( 80, 150, 80, 150,  40,  60);
  22.     p.closePath();
  23.     g2.setPaint(Color.BLUE);
  24.     g2.fill(p);
  25.     g2.setPaint(Color.RED);
  26.     g2.draw(p);
  27.   }
  28.   public static void main(String[] args) {
  29.     JFrame f = new BezierSample04();
  30.     f.setTitle("Swingサンプル(ベジェ曲線を含む図形の描画)");
  31.     f.setSize(200,200);
  32.     f.setBackground(Color.WHITE);
  33.     f.setVisible(true);
  34.   }
  35. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(太線&塗りつぶし)のアプレット版サンプル
Swing版サンプルの他の図形描画
四角形(太線&塗りつぶし) / 角の丸い四角形(太線&塗りつぶし) / 円(太線&塗りつぶし) / 楕円(太線&塗りつぶし) / 多角形(太線&塗りつぶし) / 弓形(太線&塗りつぶし) / 扇形(太線&塗りつぶし)


5. ベジェ曲線を含む図形の描画(破線)

[ サンプルプログラムのソースコード - BezierSample05.java - ]
  1. import javax.swing.JFrame;
  2. import java.awt.BasicStroke;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.geom.GeneralPath;
  7. public class BezierSample05 extends JFrame {
  8.   private static final long serialVersionUID = 1L;
  9.   public BezierSample05() {
  10.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   }
  12.   public void paint(Graphics g){
  13.     super.paint(g);
  14.     Graphics2D g2 = (Graphics2D)this.getGraphics();
  15.     g2.setPaint(Color.BLUE);
  16.     float[] dash = { 20.0f, 5.0f,3.0f,5.0f };
  17.     g2.setStroke(new BasicStroke(
  18.                  2.0f,
  19.                  BasicStroke.JOIN_ROUND,
  20.                  BasicStroke.CAP_BUTT,
  21.                  1.0f,
  22.                  dash,
  23.                  0.0f));
  24.     GeneralPath p = new GeneralPath();
  25.     p.moveTo( 40, 60);
  26.     p.lineTo(140, 60);
  27.     p.curveTo(100, 85, 100, 110, 140, 160);
  28.     p.lineTo( 30, 160);
  29.     p.curveTo( 80, 150, 80, 150,  40,  60);
  30.     p.closePath();
  31.     g2.draw(p);
  32.   }
  33.   public static void main(String[] args) {
  34.     JFrame f = new BezierSample05();
  35.     f.setTitle("Swingサンプル(ベジェ曲線を含む図形の描画)");
  36.     f.setSize(200,200);
  37.     f.setBackground(Color.WHITE);
  38.     f.setVisible(true);
  39.   }
  40. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(破線)のアプレット版サンプル
Swing版サンプルの他の図形描画
四角形(破線) / 角の丸い四角形(破線) / 円(破線) / 楕円(破線) / 直線(破線) / 連続直線(破線) / 多角形(破線) / ベジェ曲線(破線) / 円弧(破線) / 楕円弧(破線) / 弓形(破線) / 扇形(破線)


6. ベジェ曲線を含む図形の描画(破線&塗りつぶし)

[ サンプルプログラムのソースコード - BezierSample06.java - ]
  1. import javax.swing.JFrame;
  2. import java.awt.BasicStroke;
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.geom.GeneralPath;
  7. public class BezierSample06 extends JFrame {
  8.   private static final long serialVersionUID = 1L;
  9.   public BezierSample06() {
  10.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   }
  12.   public void paint(Graphics g){
  13.     super.paint(g);
  14.     Graphics2D g2 = (Graphics2D)this.getGraphics();
  15.     float[] dash = { 20.0f, 5.0f,3.0f,5.0f };
  16.     g2.setStroke(new BasicStroke(
  17.                  2.0f,
  18.                  BasicStroke.JOIN_ROUND,
  19.                  BasicStroke.CAP_BUTT,
  20.                  1.0f,
  21.                  dash,
  22.                  0.0f));
  23.     g2.setPaint(Color.GREEN);
  24.     GeneralPath p = new GeneralPath();
  25.     p.moveTo( 40, 60);
  26.     p.lineTo(140, 60);
  27.     p.curveTo(100, 85, 100, 110, 140, 160);
  28.     p.lineTo( 30, 160);
  29.     p.curveTo( 80, 150, 80, 150,  40,  60);
  30.     p.closePath();
  31.     g2.fill(p);
  32.     g2.setPaint(Color.RED);
  33.     g2.draw(p);
  34.   }
  35.   public static void main(String[] args) {
  36.     JFrame f = new BezierSample06();
  37.     f.setTitle("Swingサンプル(ベジェ曲線を含む図形の描画)");
  38.     f.setSize(200,200);
  39.     f.setBackground(Color.WHITE);
  40.     f.setVisible(true);
  41.   }
  42. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(破線&塗りつぶし)のアプレット版サンプル
Swing版サンプルの他の図形描画
四角形(破線&塗りつぶし) / 角の丸い四角形(破線&塗りつぶし) / 円(破線&塗りつぶし) / 楕円(破線&塗りつぶし) / 多角形(破線&塗りつぶし) / 弓形(破線&塗りつぶし) / 扇形(破線&塗りつぶし)


7. ベジェ曲線を含む図形の描画(グラデーション)

[ サンプルプログラムのソースコード - BezierSample07.java - ]
  1. import javax.swing.JFrame;
  2. import java.awt.Color;
  3. import java.awt.GradientPaint;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.geom.GeneralPath;
  7. public class BezierSample07 extends JFrame {
  8.   private static final long serialVersionUID = 1L;
  9.   public BezierSample07() {
  10.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   }
  12.   public void paint(Graphics g){
  13.     super.paint(g);
  14.     Graphics2D g2 = (Graphics2D)this.getGraphics();
  15.     GradientPaint gp = new GradientPaint(10,10,Color.GREEN,100,10,Color.BLUE,true);
  16.     g2.setPaint(gp);
  17.     GeneralPath p = new GeneralPath();
  18.     p.moveTo( 40, 60);
  19.     p.lineTo(140, 60);
  20.     p.curveTo(100, 85, 100, 110, 140, 160);
  21.     p.lineTo( 30, 160);
  22.     p.curveTo( 80, 150, 80, 150,  40,  60);
  23.     p.closePath();
  24.     g2.fill(p);
  25.   }
  26.   public static void main(String[] args) {
  27.     JFrame f = new BezierSample07();
  28.     f.setTitle("Swingサンプル(ベジェ曲線を含む図形の描画)");
  29.     f.setSize(200,200);
  30.     f.setBackground(Color.WHITE);
  31.     f.setVisible(true);
  32.   }
  33. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(グラデーション)のアプレット版サンプル
Swing版サンプルの他の図形描画
四角形(グラデーション) / 角の丸い四角形(グラデーション) / 円(グラデーション) / 楕円(グラデーション) / 多角形(グラデーション) / 弓形(グラデーション) / 扇形(グラデーション)


8. ベジェ曲線を含む図形の描画(テクスチャーパターン)

[ サンプルプログラムのソースコード - BezierSample08.java - ]
  1. import javax.swing.JFrame;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.Rectangle;
  6. import java.awt.TexturePaint;
  7. import java.awt.geom.GeneralPath;
  8. import java.awt.image.BufferedImage;
  9. public class BezierSample08 extends JFrame {
  10.   private static final long serialVersionUID = 1L;
  11.   public BezierSample08() {
  12.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  13.   }
  14.   public void paint(Graphics g){
  15.     super.paint(g);
  16.     Graphics2D g2 = (Graphics2D)this.getGraphics();
  17.     BufferedImage bi = new BufferedImage(10,10,BufferedImage.TYPE_INT_RGB);
  18.     Graphics2D bg = bi.createGraphics();
  19.     Rectangle r = new Rectangle(0,0,10,10);
  20.     bg.setColor(Color.ORANGE);
  21.     bg.fillRect(0, 0, 10, 10);
  22.     bg.setColor(Color.BLUE);
  23.     bg.drawLine(0, 0, 10, 0);
  24.     bg.drawLine(0, 0, 0, 5);
  25.     bg.drawLine(0, 5, 10, 5);
  26.     bg.drawLine(5, 5, 5, 10);
  27.     TexturePaint tp = new TexturePaint(bi,r);
  28.     g2.setPaint(tp);
  29.     GeneralPath p = new GeneralPath();
  30.     p.moveTo( 40, 60);
  31.     p.lineTo(140, 60);
  32.     p.curveTo(100, 85, 100, 110, 140, 160);
  33.     p.lineTo( 30, 160);
  34.     p.curveTo( 80, 150, 80, 150,  40,  60);
  35.     p.closePath();
  36.     g2.fill(p);
  37.   }
  38.   public static void main(String[] args) {
  39.     JFrame f = new BezierSample08();
  40.     f.setTitle("Swingサンプル(ベジェ曲線を含む図形の描画)");
  41.     f.setSize(200,200);
  42.     f.setBackground(Color.WHITE);
  43.     f.setVisible(true);
  44.   }
  45. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(テクスチャーパターン)のアプレット版サンプル
Swing版サンプルの他の図形描画
四角形(テクスチャーパターン) / 角の丸い四角形(テクスチャーパターン) / 円(テクスチャーパターン) / 楕円(テクスチャーパターン) / 多角形(テクスチャーパターン) / 弓形(テクスチャーパターン) / 扇形(テクスチャーパターン) /


9. ベジェ曲線を含む図形の描画(回転)

[ サンプルプログラムのソースコード - BezierSample09.java - ]
  1. import javax.swing.JFrame;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.Rectangle;
  6. import java.awt.TexturePaint;
  7. import java.awt.geom.AffineTransform;
  8. import java.awt.geom.GeneralPath;
  9. import java.awt.image.BufferedImage;
  10. public class BezierSample09 extends JFrame {
  11. private static final long serialVersionUID = 1L;
  12. public BezierSample09() {
  13. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  14. }
  15. public void paint(Graphics g){
  16. super.paint(g);
  17. Graphics2D g2 = (Graphics2D)this.getGraphics();
  18. BufferedImage bi = new BufferedImage(10,10,BufferedImage.TYPE_INT_RGB);
  19. Graphics2D bg = bi.createGraphics();
  20. Rectangle r = new Rectangle(0,0,10,10);
  21. bg.setColor(Color.ORANGE);
  22. bg.fillRect(0, 0, 10, 10);
  23. bg.setColor(Color.BLUE);
  24. bg.drawLine(0, 0, 10, 0);
  25. bg.drawLine(0, 0, 0, 5);
  26. bg.drawLine(0, 5, 10, 5);
  27. bg.drawLine(5, 5, 5, 10);
  28. TexturePaint tp = new TexturePaint(bi,r);
  29. g2.setPaint(tp);
  30. AffineTransform at = new AffineTransform();
  31. at.setToRotation(Math.toRadians(45), 90,110);
  32. g2.setTransform(at);
  33. GeneralPath p = new GeneralPath();
  34. p.moveTo( 40, 60);
  35. p.lineTo(140, 60);
  36. p.curveTo(100, 85, 100, 110, 140, 160);
  37. p.lineTo( 40, 160);
  38. p.curveTo( 80, 150, 80, 150, 40, 60);
  39. p.closePath();
  40. g2.fill(p);
  41. }
  42. public static void main(String[] args) {
  43. JFrame f = new BezierSample09();
  44. f.setTitle("Swingサンプル(ベジェ曲線を含む図形の描画)");
  45. f.setSize(200,200);
  46. f.setBackground(Color.WHITE);
  47. f.setVisible(true);
  48. }
  49. }
[ サンプルプログラムの実行結果 ]

[ 関連ページ ]
ベジェ曲線を含む図形(回転)のアプレット版サンプル
Swing版サンプルの他の図形描画
四角形(回転) / 角の丸い四角形(回転) / 円(回転) / 楕円(回転) / 多角形(回転) / 弓形(回転) / 扇形(回転) /




最終更新日:2019/02/13

2015-03-01からの訪問者数
  844 人