質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.84%

  • Java

    12517questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JAVAアプレットが何故か二度繰り返す

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 98

sakai-taichi

score 1

 前提・実現したいこと

高2の初心者です。アプレットが何故か二度繰り返してしまう。
20本の縦線を引いて終わりたいのですが、同じ処理を二回繰り返します。コンパイルエラーはありません。原因と解決方法を教えてください。
横線も引き、碁盤のようなものを表示するプログラムを書くことが目的です。

 該当のソースコード

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.awt.Dimension;
/*
<applet height=800 width=800 code="AB43.class"></applet>
*/
// 出席番号12 組3

public class AB43 extends Applet{

public void paint(Graphics g) {
int    i,j,x;
int x1=100,y1=100,x2=100,y2=600;
int x3=100,y3=100,x4=600,y4=100;

for( i = 0 ; i <= 500 ; i=i+20){
g.drawLine(x1+i,y1,x2+i,y2);

try {
Thread.sleep(100) ;
}catch (InterruptedException e) {}

}

}
}

 試したこと

Thread.sleep(100) ;を入れたら、繰り返していることがわかりました。

 補足情報(FW/ツールのバージョンなど)

環境 Windows10 java 1.8.0_171 

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

本題ではありませんが、Javaアプレットはもはや役割を終えた技術です。ブラウザプラグインはJava 9で非推奨となっており、ブラウザ側でもChrome、Firefoxなどはすでにプラグインを組み込めなくなっています。そして、java.applet自体もJava 10ではdeprecatedとなっています。

いまさらアプレットでものを作っても、公開できる場所はありません。既存のアプレットを手直しするような状況でないのなら、アプレットの学習自体をやめて別な技術に乗り換えましょう。

  • ブラウザ内で動作させるもの→JavaScript(ほぼ一択)
  • Javaで作るGUIプログラミング→JavaFXなど

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/04 08:33

    JavaScriptに挑戦していきたいと思います。

    キャンセル

+1

Javaに限らずGUI一般に言えることですが、「何か(Event)が起きたら、必要なこと(Handling for the event)」を行うという考え方でできてます。

paintメソッドは(A)「画面上にそのGUI要素の内容を描画すべきタイミングがきたら」Javaのランタイムから自動的に(B)「内容を描画しなさい」という意味で呼び出されるメソッドです。

いつ(A)が起きるかはJavaランタイムシステムが考えてくれます。あなたの環境ではそれがたまたま2回起きたということです。その理由を知るにはもっとディープな知識がついてから取り組むとわかるようになると思いますが・・・

どんな時に描画が必要かの例をいうと

  • ウィンドウが表示されたばかりのとき
  • 表示すべき内容が変化する可能性があるとき
    例えばウィンドウの大きさが変わったとかそういうときです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.84%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Javaアプレットにおいてマウスホイールを使ってのズームインズームアウトは可能か。

    質問させていただきます。 結論から言うと 「Javaアプレットにおいてマウスホイールを使ってのズームインズームアウトは可能か。」 ということです。 今Javaアプレットでオセ

  • 解決済

    java スクロールバーの配置について

    画像を傾けて表示させるプログラムを作成しました 続けてフレームの右と下にスクロールバーを配置させたいのですがどうすればよいのかがわかりません。よろしくお願いします。 impor

  • 解決済

    java 画像の表示

    コード import java.applet.Applet; import java.awt.*; public class sample extends Applet{    

  • 解決済

    アプレット パネル

    javaアプレットを勉強しています。 パネルを作って、そこに画像を張り付けて表示させたいと思っています。 ですが、実行しても表示されません。 パネルに画像を張り付けることはできない

  • 解決済

    時間をあける方法

    コード public class formal3 extends Applet{          public void paint(Graphics g){         

  • 解決済

    国旗を表示させたい(続き)

    前提・実現したいこと btn [0][1][2]をクリックすると、それに対応した国旗が表示されるようにしたい。 ソースコード import java.awt.*;   

  • 解決済

    swingでJLabelに表示している画像の透明度を変更する方法がわかりません。

    ググっても、出てきませんでした。 とりあえず、こんな感じのアニメーションを作ろうと思っています。 //import javax.swing.Timer; //Timer t

  • 受付中

    java Applet

    javaでフォントの指定法が一目で分かるようなAppletを作りたいのですが表の作り方がわかりません。

同じタグがついた質問を見る

  • Java

    12517questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。