サーチ…


前書き

グラフィックは、壁、キャンバス、スクリーン、紙、または石などの表面上のビジュアルイメージまたはデザインで、情報を伝えたり、説明したり、楽しんだりするものです。それには、コンピュータ支援設計および製造、組版およびグラフィックアート、教育およびレクリエーションソフトウェアにおけるデータの絵画的表現が含まれる。コンピュータによって生成された画像は、コンピュータグラフィックスと呼ばれます。

Java 2D APIは強力で複雑です。 Javaで2Dグラフィックを行うには複数の方法があります。

例1:Javaを使用した長方形の描画と塗りつぶし

これは、矩形内に矩形と塗りつぶしの色を印刷する例です。 https://i.stack.imgur.com/dlC5v.jpg ここに画像の説明を入力

Graphicsクラスのほとんどのメソッドは、2つの基本的なグループに分けられます。

  1. 基本的な図形、テキスト、イメージをレンダリングできるメソッドの描画と塗りつぶし
  2. その描画と塗りの表示方法に影響を与える属性設定メソッド

コード例:矩形を描き、その中に色を塗りつぶす少しの例をあげてみましょう。ここでは、2つのクラスを宣言します.1つのクラスはMyPanelで、他のクラスはTestです。 MyPanelクラスでは、drawRect()およびfillRect()mathodsを使用してRectangleを描画し、Colorを塗りつぶします。 setColor(Color.blue)メソッドで色を設定します。 2番目のクラスでは、テストクラスであるグラフィックをテストします。フレームを作成し、p = new MyPanel()オブジェクトでMyPanelを配置します。テストクラスを実行すると、RectangleとBlue Color Filled Rectangleが表示されます。

ファーストクラス:MyPanel

import javax.swing.*;
import java.awt.*;
// MyPanel extends JPanel, which will eventually be placed in a JFrame
public class MyPanel extends JPanel { 
    // custom painting is performed by the paintComponent method
    @Override
    public void paintComponent(Graphics g){
        // clear the previous painting
        super.paintComponent(g);
        // cast Graphics to Graphics2D
        Graphics2D g2 = (Graphics2D) g;
        g2.setColor(Color.red); // sets Graphics2D color
        // draw the rectangle
        g2.drawRect(0,0,100,100); // drawRect(x-position, y-position, width, height)
        g2.setColor(Color.blue);
        g2.fillRect(200,0,100,100); // fill new rectangle with color blue
    } 
}

セカンドクラス:テスト

import javax.swing.;
import java.awt.;    
public class Test { //the Class by which we display our rectangle    
    JFrame f;    
    MyPanel p;    
    public Test(){    
        f = new JFrame();    
        // get the content area of Panel.    
        Container c = f.getContentPane();    
        // set the LayoutManager
        c.setLayout(new BorderLayout());        
        p = new MyPanel();    
        // add MyPanel object into container    
        c.add(p); 
        // set the size of the JFrame
        f.setSize(400,400);    
        // make the JFrame visible
        f.setVisible(true);    
        // sets close behavior; EXIT_ON_CLOSE invokes System.exit(0) on closing the JFrame
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
    }       
    
    public static void main(String args[ ]){    
        Test t = new Test();     
    } 
}

ボーダー・レイアウトの詳細説明: https : //docs.oracle.com/javase/tutorial/uiswing/layout/border.html

paintComponent()

  • 塗装の主な方法です
  • デフォルトでは、まず背景を塗りつぶします
  • その後、カスタムペイント(円、四角形など)を実行し、

Graphic2DはGraphic2Dクラスを指します

注意: Java 2D APIを使用すると、次のタスクを簡単に実行できます。

  • 線、矩形、その他の幾何学的形状を描きます。
  • これらの図形を単色やグラデーション、テクスチャで塗りつぶします。
  • フォントとレンダリングプロセスを細かく制御するためのオプション付きのテキストを描画します。
  • 必要に応じてフィルタリング操作を適用して、画像を描画します。
  • 上記のレンダリング操作のいずれかで合成や変形などの操作を適用します。

例2:楕円の描画と塗りつぶし

import javax.swing.*;    
import java.awt.*;    

public class MyPanel extends JPanel {
    @Override
    public void paintComponent(Graphics g){    
        // clear the previous painting
        super.paintComponent(g);    
        Graphics2D g2 = (Graphics2D)g;    
        g2.setColor(Color.blue);    
        g2.drawOval(0, 0, 20,20);  
        g2.fillOval(50,50,20,20);    
    }
}

g2.drawOval(int x、int y、int height、int width);
このメソッドは、与えられた高さと幅で指定されたxとyの位置に楕円を描画します。

g2.fillOval(int x、int y、int height、int width);このメソッドは、指定されたxおよびy位置の指定された高さおよび幅の楕円を塗りつぶします。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow