国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ Java &#&ベース Javaで簡単なグラフィックを描畫する方法

Javaで簡単なグラフィックを描畫する方法

Nov 22, 2019 pm 04:18 PM
java 描く

Javaで簡単なグラフィックを描畫する方法

Java で基本的なグラフィックを描畫するには、java.awt パッケージにある Java クラス ライブラリの Graphics クラスを使用できます。獨自の Java プログラム ファイルで Graphics クラスを使用するには、import java.awt.Graphics ステートメントを使用して Graphics クラスをインポートする必要があります。

Graphics クラスは、主に線分の描畫、長方形の描畫、円の描畫、色付きグラフィックの描畫、楕円の描畫、円弧の描畫、多角形の描畫などを含む、基本的な幾何學的描畫メソッドを提供します。このプロジェクトでは直線を描畫する機能のみを使用しています。その他のグラフィック描畫については、クリックして Java API を表示してください。

Graphics クラスのdrawLine() メソッド: drawLine(int x1,int y1,int x2,int y2)

の関數(shù)このメソッド Yes: このグラフィックス コンテキストの座標系の現(xiàn)在の色を使用して、點 (x1,y1) と (x2,y2) の間に線を描畫します。

ここで理解する必要がある概念がいくつかあります:

1) グラフィックス コンテキスト: 平たく言えば、描畫環(huán)境です。各ウィンドウ コンポーネント (メイン ウィンドウ、ボタンなど) には獨自のグラフィックス コンテキスト オブジェクトがあり、このオブジェクトを使用してコンポーネント上に畫像を描畫します。このオブジェクトは Graphics オブジェクトです。

2) グラフィックス コンテキストの取得方法: 描畫するコンポーネント上で、そのコンポーネントの getGraphics() メソッドを呼び出してコンポーネントのグラフィックス コンテキスト オブジェクトを取得し、このオブジェクトを使用して描畫します。 。

3)、Java 座標系:

Java の座標原點 (0, 0) は、畫面の左上隅にあります。座標の測定単位はピクセルであり、水平方向は右方向が X 軸の正方向、垂直下方向が Y 軸の正方向 各座標點の値は畫面上のピクセルの位置を表します すべての座標點の値は次の図に示すように、整數(shù):

Javaで簡単なグラフィックを描畫する方法

4) 現(xiàn)在の色: グラフィックス コンテキストの現(xiàn)在の色を指します。各グラフィックス コンテキストには獨自の現(xiàn)在の色があります。色は Graphics オブジェクトの getColor() メソッドを通じて取得でき、色は setColor() メソッドによって設定できます。

例は次のとおりです:

ステップ 1: メンバー変數(shù)を DrawSee クラスに追加して、ゲーム領域の特性を記述します。

DrawSee クラスの場合、このクラスの主な機能はユーザーと対話することです。つまり、ゲーム領域の表示、數(shù)字の表示、ユーザーのマウス クリックへの応答、ユーザーのマウス クリックの結果の表示です。 、など。ここで、10 行 10 列のゲーム領域を描畫する問題を考えます。まず、次の 4 つのメンバー変數(shù)を DrawSee クラスに追加します。

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
public class DrawSee extends JFrame {
    private static final int sx = 50;//游戲區(qū)域10*10方塊的起始橫坐標
    private static final int sy = 50;//游戲區(qū)域10*10方塊的起始縱坐標
    private static final int w = 40;//每個小方格的邊長
    private static final int rw = 400;//游戲區(qū)域10*10方塊的邊長
    ...
}

ステップ 2: ゲーム領域を描畫するメソッドを追加します (つまり、10 行 10 列の赤いグリッドを描畫します)

public void paintComponents(Graphics g) {
        try {
            // 設置線條顏色為紅色
            g.setColor(Color.RED);
            // 繪制外層矩形框
            g.drawRect(sx, sy, rw, rw);            
            /* 繪制水平10個,垂直10個方格。
             * 即水平方向9條線,垂直方向9條線,
             * 外圍四周4條線已經(jīng)畫過了,不需要再畫。
             * 同時內部64個方格填寫數(shù)字。
             */
            for(int i = 1; i < 10; i ++) {
                // 繪制第i條豎直線
                g.drawLine(sx + (i * w), sy, sx + (i * w), sy + rw);
                // 繪制第i條水平線
                g.drawLine(sx, sy + (i * w), sx + rw, sy + (i * w));                
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

概要:

import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
/**
 * 
 * 程序入口
 *
 */
public class TestDrawLine {   
    public static void main(String[] args) {   
        new DrawSee();
    }   
}   
class DrawSee extends JFrame {
    private static final int sx = 50;//小方格寬度
    private static final int sy = 50;//小方格高度
    private static final int w = 40;
    private static final int rw = 400;
    private Graphics jg;
    private Color rectColor = new Color(0xf5f5f5);
    /**
     * DrawSee構造方法
     */
    public DrawSee() {
        Container p = getContentPane();
        setBounds(100, 100, 500, 500);
        setVisible(true);
        p.setBackground(rectColor);
        setLayout(null);   
        setResizable(false);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        
        try {    
            Thread.sleep(500);
        } catch (Exception e) {
            e.printStackTrace();
        }        
        // 獲取專門用于在窗口界面上繪圖的對象
        jg =  this.getGraphics();
        // 繪制游戲區(qū)域
        paintComponents(jg);         
    }
    public void paintComponents(Graphics g) {
        try {
            // 設置線條顏色為紅色
            g.setColor(Color.RED);
            // 繪制外層矩形框
            g.drawRect(sx, sy, rw, rw);
            
            /* 繪制水平10個,垂直10個方格。
             * 即水平方向9條線,垂直方向9條線,
             * 外圍四周4條線已經(jīng)畫過了,不需要再畫。
             * 同時內部64個方格填寫數(shù)字。
             */
            for(int i = 1; i < 10; i ++) {
                // 繪制第i條豎直線
                g.drawLine(sx + (i * w), sy, sx + (i * w), sy + rw);
                
                // 繪制第i條水平線
                g.drawLine(sx, sy + (i * w), sx + rw, sy + (i * w));
                
                // 填寫第i行從第1個方格到第8個方格里面的數(shù)字(方格序號從0開始)
                for(int j = 0; j < 10; j ++) {
                    //drawString(g, j, i);                    
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

結果は次のとおりです:

Javaで簡単なグラフィックを描畫する方法

推奨チュートリアル: Java 開発を始める

以上がJavaで簡単なグラフィックを描畫する方法の詳細內容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JDBCを使用してJavaのトランザクションを処理する方法は? JDBCを使用してJavaのトランザクションを処理する方法は? Aug 02, 2025 pm 12:29 PM

JDBCトランザクションを正しく処理するには、最初に自動コミットモードをオフにし、次に複數(shù)の操作を実行し、結果に応じて最終的にコミットまたはロールバックする必要があります。 1。CONN.SETAUTOCOMMIT(FALSE)を呼び出して、トランザクションを開始します。 2。挿入や更新など、複數(shù)のSQL操作を実行します。 3。すべての操作が成功した場合はconn.commit()を呼び出し、データの一貫性を確保するために例外が発生した場合はconn.rollback()を呼び出します。同時に、リソースを使用してリソースを管理し、例外を適切に処理し、接続を密接に接続するために、接続の漏れを避けるために使用する必要があります。さらに、接続プールを使用してセーブポイントを設定して部分的なロールバックを達成し、パフォーマンスを改善するためにトランザクションを可能な限り短く保つことをお勧めします。

Javaでカレンダーを操作する方法は? Javaでカレンダーを操作する方法は? Aug 02, 2025 am 02:38 AM

Java.Timeパッケージのクラスを使用して、古い日付とカレンダーのクラスを置き換えます。 2。LocalDate、LocalDateTime、LocalTimeを通じて現(xiàn)在の日付と時刻を取得します。 3。of()メソッドを使用して特定の日付と時刻を作成します。 4.プラス/マイナスメソッドを使用して、時間を不正に増加させて短縮します。 5. ZonedDateTimeとZoneIDを使用して、タイムゾーンを処理します。 6。DateTimeFormatterを介したフォーマットおよび解析の文字列。 7.インスタントを使用して、必要に応じて古い日付型と互換性があります。現(xiàn)代のJavaでの日付処理は、java.timeapiを使用することを優(yōu)先する必要があります。

Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Javaフレームワークの比較:Spring Boot vs Quarkus vs Micronaut Aug 04, 2025 pm 12:48 PM

Pre-formanceTartuptimeMemoryusage、quarkusandmicronautleadduetocopile-timeprocessingingandgraalvsupport、withquarkusoftentylightbetterine serverlessシナリオ。

ネットワークポートとファイアウォールの理解 ネットワークポートとファイアウォールの理解 Aug 01, 2025 am 06:40 AM

ネットワークポートアンドファイアワルクトグテルトエナブルコマニケーションwhiledensuringsecurity.1.networksarevirtualendpointsnumbered0–655 35、withwell-knownportslike80(http)、443(https)、22(ssh)、および25(smtp)識別pecificservices.2.portsoperateovertcp(信頼できる、c

Garbage CollectionはJavaでどのように機能しますか? Garbage CollectionはJavaでどのように機能しますか? Aug 02, 2025 pm 01:55 PM

JavaのGarbage Collection(GC)は、メモリを自動的に管理するメカニズムであり、到達不可能なオブジェクトを取り戻すことでメモリ漏れのリスクを軽減します。 1.GCルートオブジェクトからのオブジェクトのアクセシビリティ(スタック変數(shù)、アクティブスレッド、靜的フィールドなど)、および到達不可能なオブジェクトはゴミとしてマークされています。 2。マーククリアリングアルゴリズムに基づいて、すべての到達可能なオブジェクトをマークし、マークのないオブジェクトをクリアします。 3.世代の収集戦略を採用する:新世代(Eden、S0、S1)は頻繁にMinorGCを実行します。高齢者のパフォーマンスは少なくなりますが、MajorGCを実行するのに時間がかかります。 Metaspaceはクラスメタデータを保存します。 4。JVMはさまざまなGCデバイスを提供します。SerialGCは小さなアプリケーションに適しています。 ParallelGCはスループットを改善します。 CMSが減少します

ユーザーデータにHTML「入力」タイプを使用します ユーザーデータにHTML「入力」タイプを使用します Aug 03, 2025 am 11:07 AM

適切なHTMLinputタイプを選択すると、データの精度を向上させ、ユーザーエクスペリエンスを向上させ、使いやすさを向上させることができます。 1.テキスト、電子メール、電話、番號、日付など、データ型に従って対応する入力タイプを選択します。 2。HTML5を使用して、より直感的な相互作用方法を提供できるURL、色、範囲、検索などの新しいタイプを追加します。 3.プレースホルダーと必要な屬性を使用して、フォームフィリングの効率と精度を改善しますが、プレースホルダーがラベルを置き換えることはできないことに注意してください。

Javaビルドツールの比較:Maven vs. Gradle Javaビルドツールの比較:Maven vs. Gradle Aug 03, 2025 pm 01:36 PM

gradleisthebetterchoiceformostnewprojectoitssuperorfficability、performance、andmoderntoolingsupport.1.gradle’sgroovy/kotlindslismoreconciseandexpressiveethanmaven’sverboseml.2.gradleorformsmavenbenbumebutedwitedwitedwitedspedexは

説明された延期聲明の例で進みます 説明された延期聲明の例で進みます Aug 02, 2025 am 06:26 AM

Deferは、クリーニングリソースなど、関數(shù)が戻る前に指定された操作を実行するために使用されます。パラメーターは、延期時にすぐに評価され、関數(shù)は最後のファーストアウト(LIFO)の順に実行されます。 1.複數(shù)の債務は、宣言の逆の順序で実行されます。 2.ファイルの閉鎖などの安全なクリーニングに一般的に使用されます。 3。指定された返品値を変更できます。 4.回復に適したパニックが発生した場合でも実行されます。 5。リソースの漏れを防ぐために、ループで延期の亂用を避けます。正しい使用により、コードのセキュリティと読みやすさが向上します。

See all articles