JavaとJavascriptの違い(メモ)
CとC++が兄弟ならJavaとJavascriptは名字が同じ人
じゃんけんするだけのアプリ(pc用)
じゃんけんするだけのアプリ出来ました。
package swing.sample; import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.util.Random; public class jankengui implements ActionListener { int a=0; private JFrame mainFrame; private Container contentPane; private JTextArea textArea; private JScrollPane scrollPane; private JPanel buttonPane; private JButton Button1; private JButton Button2; private JButton Button3; public jankengui() { mainFrame = new JFrame("じゃんけん"); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainFrame.setSize(800, 600); mainFrame.setLocationRelativeTo(null); contentPane = mainFrame.getContentPane(); textArea = new JTextArea(); scrollPane = new JScrollPane(textArea); Button1 = new JButton("グー"); Button2 = new JButton("チョキ"); Button3 = new JButton("パー"); Button1.addActionListener(this); Button2.addActionListener(this); Button3.addActionListener(this); buttonPane = new JPanel(); buttonPane.add(Button1); buttonPane.add(Button2); buttonPane.add(Button3); contentPane.add(scrollPane, BorderLayout.CENTER); contentPane.add(buttonPane, BorderLayout.SOUTH); mainFrame.setVisible(true); } public void janken(int a){ int cpu; Random rnd=new Random(); cpu=rnd.nextInt(3); if(cpu==a){ textArea.append("あいこ\n"); }else{switch(cpu) { case 0: switch(a){ case 1: textArea.append("負け\n");break; case 2: textArea.append("勝ち\n");break; }break; case 1: switch(a){ case 0: textArea.append("勝ち\n");break; case 2: textArea.append("負け\n");break; }break; case 2: switch(a){ case 0: textArea.append("負け\n");break; case 1: textArea.append("勝ち\n");break; }break; } } } public void actionPerformed(ActionEvent event) { if (event.getSource() == Button1) { a=0; janken(a); } if (event.getSource() == Button2) { a=1; janken(a); } if (event.getSource() == Button3) { a=2; janken(a); } } public static void main(String[] args) { new jankengui(); } }
public jankengui()
と
public void actionPerformed(ActionEvent event)
はActionListenerの使い方が分からなかったので
SwingでJavaに強くなる(4):Swingのイベント処理を知る (2/2) - @IT
こちらのサイトのコードをコピペ&改変して作らせて頂きました。
ボタンをクリックすると画像のように勝敗の結果がテキストエリアに追加されていきます。
今はまだ勝敗を文字で表示するだけですが、これからいろいろ機能を追加していこうと思います。
今作ってるじゃんけんするアプリ
先月あたりからswingクラスを使う練習としてGUIでじゃんけんをするプログラムを作ってるので完成したら記事にします。
図書館でswingについての解説がある本を借りたのは良いけどその後遊びまくって何もしてないんだよな...
Webだけより本もあった方が勉強はかどる
僕は授業ででたプログラミングの課題をC言語で書いたあと、Javaでも同じプログラムを書くという勉強法でJavaを勉強しています。
ですが、Cだとscanfだけでできるキー入力が、Javaだとインポート、メソッドの呼び出しなどいろいろ手順を踏まないと行けないようでよくわからない。
更にWebの解説ではJavaの構造をある程度理解していることを前提としているような記述多く、まだJavaについての理解がイマイチな僕としては
「何それ意味わかんない、いいからキー入力のしかただけ教えてよ」
という感じでキー入力で詰まって勉強が進んでいませんでした。
Webの解説を理解する根気もなくJavaの勉強は一週間近く滞っていましたが、図書館で借りた本
「Javaの絵本」
のわかりやすい解説と余分な情報のないScannerクラスの使い方のおかげで僕のJavaの勉強はやっと進み始めました。
あと、この「Javaの絵本」すごくわかりやすいので初歩的な段階でつまづいているという方はぜひ読んでみてください。