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

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

ただいまの
回答率

87.60%

javaで画像とその説明文をランダムに表示したい

解決済

回答 2

投稿

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

score 18

前提・実現したいこと

javaをつかって、画像とその説明をランダムに表示させたいと思っています。
文章だけのランダム表示はできるものの、それに対応した画像を
どうつければ良いのかわかりません。

java超初心者です。
すみません。
よろしくお願い致します。

import java.util.Random;

class uranai {
public static void main(String args[]){
Random rnd = new Random();
String [] v = new String[10];
int size=0;
// 文章
v[size++]="文章";
v[size++]="文章";

int i=0;
while(i<1){// 
int no=rnd.nextInt(size);
if(v[no]!=null){
System.out.println(v[no]);
v[no]=null; //初期化
i++;
}
}
}
}

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 2

checkベストアンサー

+2

配列に持てばいいのではないでしょうか。

イメージ

[0]=>[image:01.jpg,
      text:文章1
     ],
[1]=>[image:02.jpg,
      text:文章2
     ],
[2]=>[image:03.jpg,
      text:文章3
     ],
....

あとはランダムで番号を指定させてimageとtextを利用する。


コードはマークダウンのcode機能を利用して提示してください(質問は編集できます)
マークダウンが何か分からなければヘルプを読むか、質問投稿左下に「Markdown記法と使うと・・・」というタブがあるので開いてどの記述がどのような効果があるかを確認してください。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/01/09 23:01

    ありがとうございます。
    仕事で返信が遅くなりました(-_-;)

    色々やってみたいと思います。

    キャンセル

  • 2019/01/09 23:12

    KSwordOfHasteさんの回答とあわせて、
    ゴールを明確にした上で適切なやり方を探ってください。
    「画像を表示」とはどのような状態なのか。もちろんコマンドで実行する限りコマンド内は文字列しか扱えませんので「画像を表示」とはなりません。
    GUIにするにしても、Swingのようなデスクトップアプリケーションにしたいのか、サーブレットのようなWebアプリケーションにしたいのか。
    やりたい方向性により利用するライブラリやフレームワークが違ってきます。
    今の状態だと「要件不明瞭」ということを認識してください。

    キャンセル

  • 2019/01/10 12:55

    webアプリケーションにしたいです。
    色々探ってみます。
    ありがとうございます!!

    キャンセル

  • 2019/01/10 12:56

    では、ひとまずサーブレットですね。
    「画面でレイアウトを見る」これはGUIです。

    キャンセル

+2

計算機アプリケーションには大別して

・CUIアプリケーション(文字のみを用いてユーザーとやりとりする)
・GUIアプリケーション(文字や図形、画像などCUIより多彩な表現によりユーザーとやりとりする)

があります。あなたが書いておられるコードは前者ですが、お望みの機能は後者として作る必要があります。GUIアプリケーションを作るための機能はJavaの言語機能には直接含まれておらず、GUI用のライブラリーに含まれてます。またGUIライブラリーは一種類ではないので「どのGUIライブラリーを前提にするか」をまず絞らねばなりません。

いわゆるパソコン上での話(Windows, Macintosh, Linux)ならJavaFX, swingが標準的な選択肢です。どちらがよいと一概に言えないと思いますが、少なくともどちらを選んでもお望みのものは作れます。

ちなみにGUIアプリケーションを学ぶ際に「様々なクラスが出てきたり、それらを組み合わせて使う」ことや「イベントドリブン方式」などに戸惑うことが多いかも知れません。GUIはCUIと比べるとGUI固有の知識が必要なので難易度が高いです。しかし自分で書いたGUIアプリケーションが動くのを見るのはなかなかに楽しいので、それを励みに頑張ってほしいと思います。

swing/JavaFXどちらにするかなどもう少し調べてみた上で実際にトライすることをお勧めします。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/01/09 23:03

    遅くなりました。すみません。
    GUIも勉強してみたいと思います!
    何せ独学なもので、何とかあれやこれや書いてみながら
    日々勉強中です…。
    きっと分かる人にとっては超初心者な質問になってるかと思います。
    すみません。
    こんな奴にご丁寧に説明していただいて感謝です。
    ありがとうございます!

    キャンセル

  • 2019/01/10 20:09

    コメント遅くなりましたが・・・
    回答に「アプリケーションにはCUIアプリとGUIアプリがある」と書きましたが正確には「スタンドアロンアプリケーションにはCUIアプリとGUIアプリがある」というつもりで書いてます。質問者さんが「Webアプリケーション」を想定しているなら自分の回答はあまり参考にならないはず・・・
    ゆえに自分の回答がベストアンサーになっていると閲覧者の多くは違和感を抱くと思います。mts10806さんの回答の方なら「スタンドアロンアプリケーション/Webアプリケーションの枠組みとは独立した内容」ですのでベストアンサーにふさわしいと思います。できたらBAを付け替えていただけないでしょうか?

    キャンセル

  • 2019/01/20 20:56

    遅くなり申し訳ありません。
    付け替えさせていただきました。
    皆様にお世話になったので、ベストアンサー選びたくないくらいですね(^^;)
    ありがとうございました。

    キャンセル

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

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

関連した質問

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