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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Java

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

Q&A

2回答

3161閲覧

Javaでフレーム内にランダムに数値を表示させたい

Tube

総合スコア8

Java

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

0グッド

0クリップ

投稿2017/07/30 12:53

###前提・実現したいこと
スロットゲームにてボタン入力後ターミナルではなくフレームにランダムな3桁を入力したい。
あわよくば数値によっては言葉を表示させたい。
777ならばBig Bonusなど

###発生している問題・エラーメッセージ

エラー
ターミナルにしか数値が表示されず
フレーム内に表記させるやり方がわからない。

###該当のソースコード

Java

1ここにご自身が実行したソースコードを書いてください

import java.awt.;
import javax.swing.
;
import java.awt.image.;
import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
import java.awt.event.
;
import java.io.*;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.lang.Math;
import java.lang.String;
import java.lang.System;

class Slotww extends JFrame implements ActionListener{
JTextField text;
JLabel label;

String inputText; public static void main (String [] A00){ Slotww frame = new Slotww(); frame.setVisible(true); } Slotww(){ setTitle("Slotmachine"); setBounds(100, 10, 300, 150); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); text = new JTextField("いくら賭けますか", 11); JButton button = new JButton("円賭ける"); button.addActionListener(this); label = new JLabel(); p.add(text, BorderLayout.NORTH); p.add(button, BorderLayout.NORTH); Container contentPane = getContentPane(); contentPane.add(p, BorderLayout.NORTH); contentPane.add(label, BorderLayout.PAGE_END); } public void actionPerformed(ActionEvent e){ inputText = text.getText(); class Num{ int L00 = 100; int L02 = 0; boolean a = L00 < L02 || L02 <= 0; } int L00 = 100; int L02 = 0; try{ Num useNum =new Num(); PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("test.txt", true))); pw.println(inputText); pw.close(); if (inputText.matches("a")) { label.setText("お金が足りません"); } L00 -= L02; } catch (IOException L03) { label.setText("入力エラーが発生したので終了します。"); System.exit(1); } catch (NumberFormatException L04) { label.setText("数字を入力してください。"); } long L05 = System.currentTimeMillis() + 1000; int L06 = 0; do { L06 = (int)(Math.random() * 1000); System.out.printf("\b\b\b%03d",L06); } while (System.currentTimeMillis() < L05); if (L06 == 777) { L00 += (L02 * 1000); label.setText("Big Bonus"); } else if (L06 % 111 == 0) { L00 += (L02 * 100); label.setText("Bonus"); } } }

###試したこと
課題に対してアプローチしたことを記載してください
System.out.printf("\b\b\b%03d",L06);
の部分をいじるがわからない
###補足情報(言語/FW/ツール等のバージョンなど)
Java言語

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

Java

1import java.awt.*; 2import javax.swing.*; 3import java.awt.image.*; 4import javax.imageio.ImageIO; 5import java.io.File; 6import java.io.IOException; 7import java.awt.event.*; 8import java.io.*; 9import java.io.InputStreamReader; 10import java.io.BufferedReader; 11import java.lang.Math; 12import java.lang.String; 13import java.lang.System; 14 15class Slotww extends JFrame implements ActionListener { 16 JTextField text; 17 JLabel label; 18 19 String inputText; 20 21 public static void main(String[] A00) { 22 23 Slotww frame = new Slotww(); 24 25 frame.setVisible(true); 26 } 27 28 Slotww() { 29 setTitle("Slotmachine"); 30 setBounds(100, 10, 300, 150); 31 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 32 33 JPanel p = new JPanel(); 34 text = new JTextField("いくら賭けますか", 11); 35 36 JButton button = new JButton("円賭ける"); 37 38 button.addActionListener(this); 39 40 label = new JLabel(); 41 p.add(text, BorderLayout.NORTH); 42 p.add(button, BorderLayout.NORTH); 43 44 Container contentPane = getContentPane(); 45 contentPane.add(p, BorderLayout.NORTH); 46 contentPane.add(label, BorderLayout.PAGE_END); 47 48 } 49 50 public void actionPerformed(ActionEvent e) { 51 String message = ""; 52 label.setText(message); 53 54 inputText = text.getText(); 55 56 class Num { 57 int L00 = 100; 58 int L02 = 0; 59 boolean a = L00 < L02 || L02 <= 0; 60 61 } 62 63 int L00 = 100; 64 int L02 = 0; 65 66 try { 67 Num useNum = new Num(); 68 PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter( 69 "test.txt", true))); 70 pw.println(inputText); 71 pw.close(); 72 if (inputText.matches("a")) { 73 label.setText("お金が足りません"); 74 } 75 L00 -= L02; 76 77 } catch (IOException L03) { 78 label.setText("入力エラーが発生したので終了します。"); 79 System.exit(1); 80 } catch (NumberFormatException L04) { 81 label.setText("数字を入力してください。"); 82 } 83 84 long L05 = System.currentTimeMillis() + 1000; 85 86 int L06 = 0; 87 L06 = (int) (Math.random() * 1000); 88 message = Integer.toString(L06); 89 90 if (L06 == 777) { 91 L00 += (L02 * 1000); 92 message = message + " Big Bonus"; 93 } else if (L06 % 111 == 0) { 94 L00 += (L02 * 100); 95 message = message + " Bonus"; 96 } 97 label.setText(message); 98 } 99}

元のコードをなるべく生かした場合、このようにすれば「一応」動きます。
ただ、よく分からないコードが多い印象です。

投稿2017/08/01 09:08

hige0119

総合スコア37

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

生成した数値をString.valueOfで文字列に変換し、label.setText()してやればいいです。

重要

コードはバッククオート三つで括ってください。
よくわからない場合は、マークダウン記法について調べてみてください。
これをするかしないかで、回答の数や質に違いが出てきます。

さらにいうと

連番で変数名を決めるのはやめよう。絶対。

投稿2017/07/30 15:43

LouiS0616

総合スコア35658

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問