JAvaグラフィック


2021.09.29

スイング構成部品を描画するには


ロッキング構成部品オブジェクトに属する構成部品は、自分で描くことができます.
自分の心の描き方
void paintComponent(Graphics g){...}
以上のように.
! Tip
このクリップを使用してjavaコードを入力します.
左上隅のsourceタブをクリックし、overristing implementsメソッドメニューをクリックして、カーソルの位置からオブジェクトのメソッドリストを取得し、選択して適用します.

paintcompent overriding

class Example extends JComponent내 컴포넌트 객체명 {
		...
    public void paintComponent(Graphics g){ // 오버라이딩
    	필요 코드 작성
    }
    	...
}
追加するJ要素を継承するクラスを作成し、そのクラスのインスタンスを継承Jフレームワークのメインクラスに作成して使用します.
このとき主に使われるコンポーネントはJPanelです.

図の座標系


Javaのグラフィック座標値は左上隅に対して設定されます.
x軸はますます右になります.
y軸は底に向かうにつれて増加する.
グラフィックスカードの機能は非常に簡単です.
  • を選択
    描画
  • 文字列
  • グラフィック描画
  • グラフィック
  • を描画
  • 画像
  • を描画
  • トリミング
  • そう言ってもいいです.

    グラフィックオブジェクトメソッド


    このクリップの機能を使用して、オーバーライド方法を作成します.
    グラフィックオブジェクトをgという参照変数としてパラメータを受け入れます.
    従ってg.方法();この形で使います.

    文字列の描画


    g.drawString(String str, int x, int y)
    文字列を(x,y)座標に描画します.
    ここで、文字列の左下隅は、他の既存のグラフィックで作成された要素とは異なる基準座標に設定されます.

    色、フォントの設定


    g.setColor(カラーオブジェクト内の作成者と定数)
    次に描画するグラフィック要素の色を指定します.
    g.setColor(フォントオブジェクト内の作成者と定数)
    次に描画するグラフィック要素のテキストのフォントを指定します.

    カラーオブジェクト


    色を表すクラス.
    Color(int r, int g, int b)
    Color(int rgb)
    上のように、構造関数が上書きされています.
    使用
  • g.setColor(new Color(int r, int g, int b))
  • g.setColor(new Color(int rgb))
  • g.setColor(定数名)
  • 上記の3つの方法を使用します.

    Fontオブジェクト


    テキストフォント情報を表すクラス.
    Font(String fontFace, int style, int size)
    同じ平日作成者.
    使用
    g.setColor(new Font(String fontFace, int style, int size))
    以上の方法で使用します.

    グラフィックの描画


    グラフィックオブジェクトを使用してさまざまなグラフィックを描画する方法.

    線を引く


    g.drawLine(int x1, int y2, int x2, int y2)
    (x 1,y 1)を基準として、(x 2,y 2)まで線を引く.

    円と楕円を描く


    g.drawOval(int x, int y, int w, int h)
    (x,y)を基準に横w,縦hの円を描く.

    長方形の描画


    g.drawRect(int x, int y, int w, int h)
    (x,y)を基準に横w,縦hの矩形を描く.

    角丸長方形の描画


    g.drawRoundRect(int x, int y, int w, int h, int arcWidth, int arcHeight)
    (x,y)を基準に横w,縦hの矩形を描き,4辺にarcWidth,arcHeightを基準に円弧を描く.

    円弧の描画


    g.drawArc(int x, int y, int w, int h, int startAngle, int arcAngle)
    startAngle=円弧開始角度
    ArcAngle=円弧角度、すなわち描画量(最大360度)
    (x,y)を基準として、横w,縦hの円で指定した円弧角度に従って円弧を描画します.

    多角形の描画


    g.drawArc(int [] x, int [] y, int n)
    配列されたxとyをインデックス0からペアリングし、座標を設定してn個の描画ポリゴンを接続します.

    グラフィックの描画


    以上のdrawで開始する方法のみをfillに変更すると、塗りつぶし色のグラフィックが描画されます.
    Ex) g.drawRect() 👉 g.fillRect()

    画像の描画


    同じJavaプロジェクトファイルから画像を読み込み、J構成部品の内部に描画する方法.

    元のサイズで描画


    1. g.drawImage(Image img, int x, int y, Color bgColor, ImageObserver observer)
    2. g.drawImage(Image img, int x, int y, ImageObserver observer)
    img=イメージオブジェクト
    x,y=画像を描画する座標
    bgColor=画像に透明な部分がある場合に塗る色
    observer=描画された画像を受信するオブジェクトで、ほとんどが素子内部で直接描画されます.

    拡大/縮小


    1. g.drawImage(Image img, int x, int y, int width, int height, Color bgColor, ImageObserver observer)
    2. g.drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
    width=描画画像幅
    height=描画された画像の高さ

    元の画像の一部をスケールして描画


    1. g.drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgColor, ImageObserver observer)
    2. g.drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
    dx 1,dy 1=グラフィック領域の左上隅座標
    dx 2,dy 2=グラフィック領域右下角座標
    sx 1,sy 1=ソース画像上の左上隅座標
    sx 2,sy 2=ソース画像上の右下隅座標
    ソースイメージファイルの座標を指定し、その領域イメージのみを指定したグラフィック領域に描画します.

    画像オブジェクトの作成


    ImageIcon icon=new ImageIcon(「ファイルパス名」)
    ファイルから画像をロード
    Image img = icon.getImage();
    画像情報の抽出

    トリム


    機能は、エレメント内のグラフィックの表示領域を指定し、その領域に重なるグラフィックのみを表示します.

    トリム領域の設定方法


    setClip(int x, int y, int w, int h)
    グラフィックターゲット素子の(x,y)位置に幅w、高さhのトリミング領域を指定する方法
    clipRect(int x, int y, int w, int h)
    既存のトリム領域とトリム()によって作成されたトリム領域とオーバーラップ領域を新しいトリム領域に設定する方法.

    ぬりきこう


    グラフィックシェーディングは、最上位の親から始まり、子に順番に降順し、要素を描画します.
    最上位コンテナ👉 サブコンテナ👉 サブエレメント

    再描画


    イベントが発生または変更された場合、既存の要素に追加内容を追加すると、コンピュータは追加する部分だけを描くのではなく、最初から既存の要素の追加部分を実装します.そのため、再描画または配置方法が必要です.
    container.revalidate();
    アタッチメント構成部品の再配置
    container.repaint();
    コンテナの再描画
    ウィンドウ全体のサイズを変更すると、上記の2つの方法が自動的に呼び出されますが、他の場合は、手動で新しいコンテナに呼び出す必要があります.