Java Swing プログラミング サンプル ---スマホ対応版---

楕円を描画するJavaSwingのサンプルです。 太線や破線での描画、グラデーション、テクスチャー、図形の回転などのサンプルを掲載しています。

   Home
   > サンプル集
   > Swingサンプル集
   > 楕円の描画-Swing版-


楕円の描画-Swing版-

このページには、以下のサンプルを掲載しています。 下の項目をクリックをすると各サンプルにジャンプします。 ※2週間以内の新着記事はNewアイコン、更新記事はUpアイコンが表示されます。
  1. 楕円の描画 - Swing版 - ( EllipseSample01.java )  
  2. 楕円の描画 - Swing版 -(塗りつぶし)( EllipseSample02.java )  
  3. 楕円の描画 - Swing版 -(太い輪郭線) ( EllipseSample03.java )  
  4. 楕円の描画 - Swing版 -(破線の輪郭線) ( EllipseSample04.java )  
  5. 楕円の描画 - Swing版 -(太い輪郭線&塗りつぶし) ( EllipseSample05.java )  
  6. 楕円の描画 - Swing版 -(破線の輪郭線&塗りつぶし) ( EllipseSample06.java )  
  7. 楕円の描画 - Swing版 -(グラデーション) ( EllipseSample07.java )  
  8. 楕円の描画 - Swing版 -(テクスチャーパターン) ( EllipseSample08.java )  
  9. 楕円の描画 - Swing版 -(回転) ( EllipseSample09.java )  

楕円の描画サンプルのSwing版です。描画処理自体はアプレット版とほとんど変わりません。変わるのは、継承するクラスや mainメソッド周りの処理のみです。

1. 楕円の描画

[ サンプルプログラムのソースコード - EllipseSample01.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.Ellipse2D;
  6. public class EllipseSample01 extends JFrame {
  7.   private static final long serialVersionUID = 1L;
  8.   public EllipseSample01() {
  9.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  10.   }
  11.   public void paint(Graphics g){
  12.     super.paint(g);
  13.     Graphics2D g2 = (Graphics2D)g;
  14.     Ellipse2D ellipse = new Ellipse2D.Double(40, 50, 100, 50);
  15.     g2.draw(ellipse);
  16.   }
  17.   public static void main(String[] args) {
  18.     JFrame f = new EllipseSample01();
  19.     f.setTitle("Swingサンプル(楕円の描画)");
  20.     f.setSize(200,200);
  21.     f.setBackground(Color.WHITE);
  22.     f.setVisible(true);
  23.   }
  24. }
[ サンプルプログラムの実行結果 ]

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


2. 楕円の描画(塗りつぶし)

[ サンプルプログラムのソースコード - EllipseSample02.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.Ellipse2D;
  6. public class EllipseSample02 extends JFrame {
  7.   private static final long serialVersionUID = 1L;
  8.   public EllipseSample02() {
  9.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  10.   }
  11.   public void paint(Graphics g){
  12.     super.paint(g);
  13.     Graphics2D g2 = (Graphics2D)g;
  14.     g2.setColor(Color.ORANGE);
  15.     Ellipse2D ellipse = new Ellipse2D.Double(40, 50, 100, 50);
  16.     g2.fill(ellipse);
  17.   }
  18.   public static void main(String[] args) {
  19.     JFrame f = new EllipseSample02();
  20.     f.setTitle("Swingサンプル(楕円の描画)");
  21.     f.setSize(200,200);
  22.     f.setBackground(Color.WHITE);
  23.     f.setVisible(true);
  24.   }
  25. }
[ サンプルプログラムの実行結果 ]

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


3. 楕円の描画(太い輪郭線)

[ サンプルプログラムのソースコード - EllipseSample03.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.Ellipse2D;
  7. public class EllipseSample03 extends JFrame {
  8.   private static final long serialVersionUID = 1L;
  9.   public EllipseSample03() {
  10.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   }
  12.   public void paint(Graphics g){
  13.     super.paint(g);
  14.     Graphics2D g2 = (Graphics2D)g;
  15.     g2.setStroke(new BasicStroke(5.0f));
  16.     Ellipse2D ellipse = new Ellipse2D.Double(40, 50, 100, 50);
  17.     g2.draw(ellipse);
  18.   }
  19.   public static void main(String[] args) {
  20.     JFrame f = new EllipseSample03();
  21.     f.setTitle("Swingサンプル(楕円の描画)");
  22.     f.setSize(200,200);
  23.     f.setBackground(Color.WHITE);
  24.     f.setVisible(true);
  25.   }
  26. }
[ サンプルプログラムの実行結果 ]

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


4. 楕円の描画(太い輪郭線&塗りつぶし)

[ サンプルプログラムのソースコード - EllipseSample04.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.Ellipse2D;
  7. public class EllipseSample04 extends JFrame {
  8.   private static final long serialVersionUID = 1L;
  9.   public EllipseSample04() {
  10.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   }
  12.   public void paint(Graphics g){
  13.     super.paint(g);
  14.     Graphics2D g2 = (Graphics2D)g;
  15.     g2.setColor(Color.YELLOW);
  16.     Ellipse2D ellipse = new Ellipse2D.Double(40, 50, 100, 50);
  17.     g2.fill(ellipse);
  18.     g2.setColor(Color.MAGENTA);
  19.     g2.setStroke(new BasicStroke(5.0f));
  20.     g2.draw(ellipse);
  21.   }
  22.   public static void main(String[] args) {
  23.     JFrame f = new EllipseSample04();
  24.     f.setTitle("Swingサンプル(楕円の描画)");
  25.     f.setSize(200,200);
  26.     f.setBackground(Color.WHITE);
  27.     f.setVisible(true);
  28.   }
  29. }
[ サンプルプログラムの実行結果 ]

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


5. 楕円の描画(破線の輪郭線)

[ サンプルプログラムのソースコード - EllipseSample05.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.Ellipse2D;
  7. public class EllipseSample05 extends JFrame {
  8.   private static final long serialVersionUID = 1L;
  9.   public EllipseSample05() {
  10.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   }
  12.   public void paint(Graphics g){
  13.     super.paint(g);
  14.     Graphics2D g2 = (Graphics2D)g;
  15.     g2.setColor(Color.MAGENTA);
  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.     Ellipse2D ellipse = new Ellipse2D.Double(40, 50, 100, 50);
  25.     g2.draw(ellipse);
  26.   }
  27.   public static void main(String[] args) {
  28.     JFrame f = new EllipseSample05();
  29.     f.setTitle("Swingサンプル(楕円の描画)");
  30.     f.setSize(200,200);
  31.     f.setBackground(Color.WHITE);
  32.     f.setVisible(true);
  33.   }
  34. }
[ サンプルプログラムの実行結果 ]

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


6. 楕円の描画(破線の輪郭線&塗りつぶし)

[ サンプルプログラムのソースコード - EllipseSample06.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.Ellipse2D;
  7. public class EllipseSample06 extends JFrame {
  8.   private static final long serialVersionUID = 1L;
  9.   public EllipseSample06() {
  10.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   }
  12.   public void paint(Graphics g){
  13.     super.paint(g);
  14.     Graphics2D g2 = (Graphics2D)g;
  15.     g2.setColor(Color.LIGHT_GRAY);
  16.     Ellipse2D ellipse = new Ellipse2D.Double(40, 50, 100, 50);
  17.     g2.fill(ellipse);
  18.     g2.setColor(Color.MAGENTA);
  19.     float[] dash = { 20.0f, 5.0f,3.0f,5.0f };
  20.     g2.setStroke(new BasicStroke(
  21.         2.0f,
  22.         BasicStroke.JOIN_ROUND,
  23.         BasicStroke.CAP_BUTT,
  24.         1.0f,
  25.         dash,
  26.         0.0f));
  27.     g2.draw(ellipse);
  28.   }
  29.   public static void main(String[] args) {
  30.     JFrame f = new EllipseSample06();
  31.     f.setTitle("Swingサンプル(楕円の描画)");
  32.     f.setSize(200,200);
  33.     f.setBackground(Color.WHITE);
  34.     f.setVisible(true);
  35.   }
  36. }
[ サンプルプログラムの実行結果 ]

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


7. 楕円の描画(グラデーション)

[ サンプルプログラムのソースコード - EllipseSample07.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.Ellipse2D;
  7. public class EllipseSample07 extends JFrame {
  8.   private static final long serialVersionUID = 1L;
  9.   public EllipseSample07() {
  10.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  11.   }
  12.   public void paint(Graphics g){
  13.     super.paint(g);
  14.     Graphics2D g2 = (Graphics2D)g;
  15.     GradientPaint gp = new GradientPaint(10,10,Color.GREEN,100,10,Color.BLUE,true);
  16.     g2.setPaint(gp);
  17.     Ellipse2D ellipse = new Ellipse2D.Double(40, 50, 100, 50);
  18.     g2.fill(ellipse);
  19.   }
  20.   public static void main(String[] args) {
  21.     JFrame f = new EllipseSample07();
  22.     f.setTitle("Swingサンプル(楕円の描画)");
  23.     f.setSize(200,200);
  24.     f.setBackground(Color.WHITE);
  25.     f.setVisible(true);
  26.   }
  27. }
[ サンプルプログラムの実行結果 ]

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


8. 楕円の描画(テクスチャーパターン)

[ サンプルプログラムのソースコード - EllipseSample08.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.Ellipse2D;
  8. import java.awt.image.BufferedImage;
  9. public class EllipseSample08 extends JFrame {
  10.   private static final long serialVersionUID = 1L;
  11.   public EllipseSample08() {
  12.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  13.   }
  14.   public void paint(Graphics g){
  15.     super.paint(g);
  16.     Graphics2D g2 = (Graphics2D)g;
  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.     Ellipse2D ellipse = new Ellipse2D.Double(40, 50, 100, 50);
  30.     g2.fill(ellipse);
  31.   }
  32.   public static void main(String[] args) {
  33.     JFrame f = new EllipseSample08();
  34.     f.setTitle("Swingサンプル(楕円の描画)");
  35.     f.setSize(200,200);
  36.     f.setBackground(Color.WHITE);
  37.     f.setVisible(true);
  38.   }
  39. }
[ サンプルプログラムの実行結果 ]

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


9. 楕円の描画(回転)

[ サンプルプログラムのソースコード - EllipseSample09.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.Ellipse2D;
  9. import java.awt.image.BufferedImage;
  10. public class EllipseSample09 extends JFrame {
  11.   private static final long serialVersionUID = 1L;
  12.   public EllipseSample09() {
  13.     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  14.   }
  15.   public void paint(Graphics g){
  16.     super.paint(g);
  17.     Graphics2D g2 = (Graphics2D)g;
  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(45*Math.PI/180.0f, 90,75);
  32.     g2.setTransform(at);
  33.     Ellipse2D ellipse = new Ellipse2D.Double(40, 50, 100, 50);
  34.     g2.fill(ellipse);
  35.   }
  36.   public static void main(String[] args) {
  37.     JFrame f = new EllipseSample09();
  38.     f.setTitle("Swingサンプル(楕円の描画)");
  39.     f.setSize(200,200);
  40.     f.setBackground(Color.WHITE);
  41.     f.setVisible(true);
  42.   }
  43. }
[ サンプルプログラムの実行結果 ]

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





最終更新日:2019/02/13

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