ゆるゆるプログラミング

・ライン描画

ここでは、ライン描画の仕方を解説します。

ラインは2つの座標(x1,y1)と(x2,y2)を結んだ直線です。指定する座標がグラフィックで使う座標は、7以下は、ラインを描画するJavaのソースコードと実行結果です。

GR_Line.java
001:    import java.awt.*;
002:    import javax.swing.*;
003:    
004:    public class GR_Line {
005:    	public static void main(String[] args) {
006:    		JFrame frame = new JFrame();
007:    
008:    		// // タイトル名を設定
009:    		frame.setTitle( "タイトル" );
010:    
011:    		// フレームの大きさを設定
012:    		frame.setSize( 256, 256 );
013:    
014:    		// ”×”ボタンを押した時の処理を設定
015:    		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
016:    
017:    		// フレームにパネルを追加
018:    		MyPanel panel = new MyPanel();
019:    		frame.getContentPane().add( panel );
020:    
021:    		// フレームを表示
022:    		frame.setVisible( true );
023:    	}
024:    }
025:    
026:    
027:    // JPanelを継承したMyPanelを作成
028:    class MyPanel extends JPanel {
029:    	public MyPanel() {
030:    		// 背景色を黒(black)に設定
031:    		setBackground( Color.black );
032:    	}
033:    
034:    
035:    	// 描画
036:    	public void paintComponent( Graphics g ) {
037:    		super.paintComponent( g );
038:    
039:    		// ラインの色を赤(red)に設定
040:    		g.setColor(Color.red);
041:    
042:    		// ラインを描画
043:    		g.drawLine( 10, 50, 220, 200 );
044:    	}
045:    }

GR_Line.javaの実行結果

ライン描画

ここからは、このソースコードを上から順番に解説していきます。

001:    import java.awt.*;
002:    import javax.swing.*;

Javaのクラスライブラリの中から「java.awt」と 「javax.swing」というパッケージにあるクラスを、このプログラム内で使うために記述します。

004:    public class GR_Line {

クラス名を、GR_Lineとしています。

005:    	public static void main(String[] args) {

このmainメソッドからプログラムを実行します。

006:    		JFrame frame = new JFrame();

フレームの表示は、JFrameクラスを使います。

008:    		// // タイトル名を設定
009:    		frame.setTitle( "タイトル" );

ウィンドウに表示するタイトルを指定します。この例では、タイトルという文字列を指定しています。

011:    		// フレームの大きさを設定
012:    		frame.setSize( 256, 256 );

フレーム全体のサイズを指定します。この例では、フレーム全体(タイトルバーと縁を含む)のサイズは256x256ピクセルです。

フレームサイズ

014:    		// ”×”ボタンを押した時の処理を設定
015:    		frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );

"×"ボタンを押したときの処理を指定します。JFrame.EXIT_ON_CLOSEは、フレームを閉じることを意味しています。

017:    		// フレームにパネルを追加
018:    		MyPanel panel = new MyPanel();
019:    		frame.getContentPane().add( panel );

フレームにパネル(Jpanelクラス)を割り当てます。パネルは、グラフィック表示やボタンなどを乗せられる板のようなものです。ここでは、JPanelクラスを継承したMyPanelクラスを作り、そのクラスの中でラインを描画します。MyPanelクラスのソースは27行目から書いています。

027:    // JPanelを継承したMyPanelを作成
028:    class MyPanel extends JPanel {

JPanelクラスを継承したMyPanelクラスです。

029:    	public MyPanel() {
030:    		// 背景色を黒(black)に設定
031:    		setBackground( Color.black );

パネルの背景色を黒にしています。public MyPanel()は、MyPanelクラスが作られる(実行される)ときに1回だけ呼ばれるメソッドです。public クラス名( 引数 )を書くことで、最初に実行するメソッドを作ることが出来ます。

035:    	// 描画
036:    	public void paintComponent( Graphics g ) {
037:    		super.paintComponent( g );

パネルの描画メソッドです。このpublic void paintComponent( Graphics g )メソッドは、パネルの表示が必要なときに呼び出されるメソッドです。メソッド名と引数は、変えないでください。

039:    		// ラインの色を赤(red)に設定
040:    		g.setColor(Color.red);

ここからラインの描画です。ここでは、ラインの色を赤に設定しています。

Graphics.setColorメソッド

public abstract void setColor( Color c )
■このグラフィックスコンテキストの現在の色を、指定された色に設定します。

  パラメータ c : 色

  戻り値     なし

042:    		// ラインを描画
043:    		g.drawLine( 10, 50, 220, 200 );

ラインの描画です。グラフィック座標(10,50)と(220,200)を結んだ直線を描画します。この例では線幅を指定していないので1ピクセルの幅のラインが描画されます。

グラフィック座標のx軸は、原点より右をプラス左をマイナスの数値で表します。y軸は、原点より下をプラス上をマイナスの数値で表します。下の図は、グラフィック座標系を表しています。

フレームサイズ

Graphics.drawLineメソッド

public abstract void drawLine( int x1, int y1, int x2, int y2 )
■このグラフィックスコンテキストの座標系の点 (x1, y1) と点 (x2, y2) との
                        間に現在の色を使って線を描きます。

  パラメータ x1 : グラフィックスコンテキストのx座標1
        y1 : グラフィックスコンテキストのy座標1
        x2 : グラフィックスコンテキストのx座標2
        y2 : グラフィックスコンテキストのy座標2

  戻り値     なし

■ライン描画の例

正三角形の描画 ラインを使った正三角形の描画方法について解説

■関連コンテンツ

フレームの表示 図形を表示するフレーム(枠)の表示方法について解説
背景色の変更 図形を表示するフレームの背景色の変更方法について解説

■新着情報

2017.11.17 N値化 カラー画像をN値化する方法について解説
2017.11.16 最も近い値の取得 指定値に最も近い配列の値を取得する方法を解説
2017.10.02 アルファ値(透過) アルファ値(透過)について

■広告

法人向けのETC専用カード

~約8,000名の受講生と80社以上の導入実績~ 企業向けプログラミング研修ならCodeCamp

日本最大級ショッピングサイト!お買い物なら楽天市場

Topへ