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

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

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

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

Javaアプレット

Javaアプレットは、Webページに組み込まれて実行されるJavaアプリケーションの形式です。Java SE 11で廃止となりました。

Q&A

0回答

2279閲覧

javaにてルーレットの作成がしたいです。

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

Javaアプレット

Javaアプレットは、Webページに組み込まれて実行されるJavaアプリケーションの形式です。Java SE 11で廃止となりました。

0グッド

0クリップ

投稿2019/01/26 10:06

実現したいこと

javaにてルーレットの作成をしようとしています。
ルーレットのイメージとしては
http://www.web-roulette.com/
このサイトのような
・X人から一人を選ぶというようなルーレットを作る
・回るアニメーションを用いてそれがだんだん遅くなってストップする。
といった感じです。

発生している問題

これらを制作するためにどういった方法をとっていけばいいのかわからず壁にあたっております。

とりあえず何かを回転させる処理が必要だと思い、画像を回転させるような処理を作りました。
X等分の円を用意し、それをだんだん遅くしていき、止める。といった案を考え以下のプログラムを考えました。
このプログラムでは任意の画像が回転するだけです。
このプログラムの路線で目的のルーレットを作成することができるでしょうか?
どういったプログラムを追加すれば作ることができるでしょうか?
ぜひご教授ください。

java

1import java.awt.Color; 2import java.awt.Graphics; 3import java.awt.Graphics2D; 4import java.awt.Image; 5import java.awt.Toolkit; 6import java.awt.Button; 7import java.awt.event.ActionEvent; 8import java.awt.event.ActionListener; 9import java.lang.String; 10import javax.swing.ImageIcon; 11import javax.swing.JFrame; 12import javax.swing.JPanel; 13import javax.swing.Timer; 14import static java.lang.Math.PI; 15 16 17public class roulette extends JFrame { 18 final static int C00 = 1 ; //速度変更 19 20 public roulette() { 21 DrawPanel Pmain = new DrawPanel(); 22 add(Pmain); 23 24 new Timer(C00, Pmain).start(); 25 26 } 27 28 public static void main(String[] args) { 29 Toolkit.getDefaultToolkit().setDynamicLayout(true); 30 31 JFrame Pmain = new roulette(); 32 Pmain.setLayout(null); 33 Pmain.setTitle("るーれっと"); 34 Pmain.setDefaultCloseOperation(EXIT_ON_CLOSE); 35 Pmain.setBackground(Color.white); 36 Pmain.setSize(500, 500); 37 Pmain.setVisible(true); 38 39 Button StopButton = new Button(); 40 StopButton.setLabel("stop"); 41 Pmain.add(StopButton); 42 StopButton.setBounds(10, 10, 60, 60); 43 StopButton.setForeground(Color.WHITE); 44 StopButton.setBackground(Color.RED); 45 } 46} 47 48 49 50//以下ルーレット部分 51class DrawPanel extends JPanel implements ActionListener { 52 int n; 53 String C00 = "image"+n+".png"; //任意のn 54 Image I00; 55 int I01; 56 int I02; 57 int I03 = 0; 58 59 public DrawPanel() { 60 setBackground(Color.white); 61 I00 = new ImageIcon(C00).getImage(); 62 I01 = I00.getWidth(this); 63 I02 = I00.getHeight(this); 64 } 65 66 public void actionPerformed(ActionEvent A00) { 67 I03 = ++I03 % 360; 68 repaint(); 69 } 70 71 public void paintComponent(Graphics A00) { 72 Graphics2D Pmain = (Graphics2D)A00; 73 Pmain.setColor(Color.white); 74 Pmain.fillRect(0, 0, getWidth(), getHeight()); 75 Pmain.rotate(I03 * PI / 180, getWidth() / 2.0, getHeight() / 2.0); 76 Pmain.drawImage(I00, (getWidth() - I01) / 2, (getHeight() - I02) / 2, this); 77 } 78}

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

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

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

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

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

jimbe

2019/01/26 10:36

まず, swing と AWT を混ぜないでください. 異常動作に悩むことになります. Button は AWT です. 対応する swing の JButton を使ってください. プログラムに絶対の正解はありません. 動くように作れば動きますし, 動くと思っても動かない場合もあります. 用意されている数々の部品をどう組み合わせて目的を達成するかがプログラミングですので, 使える部品を探し, 無ければ作り, 組み合わせてください. 部品の使い方, 組み合わせ方が, その部品の想定したものと違っていると, 思った動きにならないことが多いですが, 逆にうまく動いて「こんな使い方もあったのか」となる場合もあります. その成功/失敗の積み重ねが経験です. ルーレットが回ったのでしたら次は何をしましょう. Chikuwa_man さん次第です. この先ここから目的のものが作れるかどうか? Chikuwa_man さん次第です. 今書いているコードが全く役に立たないかもしれない? コードは変わっていくものです. 役に立たなかったら別のコードを書くだけです. でもこのコードを書いた経験はどこかで役に立つことでしょう.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問