素粒子の世界で自由に生きる -18ページ目

素粒子の世界で自由に生きる

iphoneアプリのレビューをしていたんですが・・
だんだんandroidアプリ開発の話になってきました。。
さらに、素粒子の話になってきました笑
自分が読み返したくなるブログ記事を書いております♪
ほぼ自己満ですが、ぜひお楽しみください!

押されたボタンを認識して、何ボタンが押されたかをディスプレイに反映させる。



package swingsam;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.prefs.BackingStoreException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Calctest extends JFrame implements ActionListener {
JPanel pane;
JTextField display;
String start = " ";

public Calctest(String s) {
super(s);
pane = new JPanel(new GridLayout(1, 1)); // 結果表示のためのパネル
display = new JTextField(); // 結果表示のためのテキストエリア

// フレームの構成
this.setSize(320, 240);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new BorderLayout());

// ボタンなど、画面の構成

this.add(pane); // 結果表示のためのパネルをフレームに組み込む
pane.add(display);// 結果表示のためのテキストエリアをパネルにはめ込んで見えるようにする

display.setHorizontalAlignment(JTextField.RIGHT);// テキストエリアのカーソルを右側に出す
JPanel pane1 = new JPanel(new GridLayout(5, 4));// ボタン配置のためのパネル

String btnface[] = { "BS", "CL", "AC", "1", "2", "3", "+", "4", "5",
"6", "-", "7", "8", "9", "/", "0", "=", "+/-", "*" }; // ボタンの表示を作る
String actionCommand[] = { "BS", "CL", "AC", "1", "2", "3", "+", "4",
"5", "6", "-", "7", "8", "9", "/", "0", "=", "+/-", "*" };
JLabel dummy = new JLabel();// 無記入のラベルをひとつ作る
pane1.add(dummy);// pane1の1番始めのグリッドを空白にするためにひとつ付け足す
JButton btn;
for (int i = 0; i < btnface.length; i++) {
btn = new JButton(btnface[i]);
btn.addActionListener(this); // ActionListenerをbtn(作成したボタン)にadd(付け加えて)している。これでpublic
// void actionPerformed(ActionEvent
// e) が呼び出されるようになった!
btn.setActionCommand(actionCommand[i]); // actionCommandをセットして、ボタンの中身の判断が出来るようにする。(全部数字でそろえてifで判定できるようにする)
pane1.add(btn);
}

this.add(pane, BorderLayout.NORTH);
this.add(pane1, BorderLayout.CENTER);

pane.setBackground(new Color(00, 00, 00));
this.setVisible(true);
display("0");

}

public void display(String t) {
display.setText(t);

}

public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand();// まず、getActionCommandでボタンが押されたとき、そのボタンに設定されているActionCommand(set.ActionCommandで設定している。)をcmdに格納する。
if (cmd.equals("BS")) { // if文を使って何ボタンが押されたかを判定していきます。
display("BS");
} else if (cmd.equals("CL")) {
display("CL");
} else if (cmd.equals("AC")) {
display("AC");
} else if (cmd.equals("1")) {
display("1");
} else if (cmd.equals("2")) {
display("2");
} else if (cmd.equals("3")) {
display("3");
} else if (cmd.equals("4")) {
display("4");
} else if (cmd.equals("5")) {
display("5");
} else if (cmd.equals("6")) {
display("6");
} else if (cmd.equals("7")) {
display("7");
} else if (cmd.equals("8")) {
display("8");
} else if (cmd.equals("9")) {
display("9");
} else if (cmd.equals("0")) {
display("0");
} else if (cmd.equals("+")) {
display("+");
} else if (cmd.equals("-")) {
display("-");
} else if (cmd.equals("+/-")) {
display("+/-");
} else if (cmd.equals("*")) {
display("*");
} else if (cmd.equals("/")) {
display("/");
} else if (cmd.equals("=")) {
display("=");
}

// TODO 自動生成されたメソッド・スタブ

}

public static void main(String[] args) {
Calctest frame = new Calctest("電卓");

}
}

ボタンをおしたら何かを表示する


ってーとこまで来た。

ここまできたら、どのボタンで何をするか決めていくだけー。


簡単♪


k本的なことはここまでかな??


package swingsam;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.prefs.BackingStoreException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Calctest extends JFrame implements ActionListener {
JPanel pane;
JTextField display;
String start = " ";

public Calctest(String s) {
super(s);
pane = new JPanel(new GridLayout(1, 1)); // 結果表示のためのパネル
display = new JTextField(); // 結果表示のためのテキストエリア

// フレームの構成
this.setSize(320, 240);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new BorderLayout());

// ボタンなど、画面の構成

this.add(pane); // 結果表示のためのパネルをフレームに組み込む
pane.add(display);// 結果表示のためのテキストエリアをパネルにはめ込んで見えるようにする

display.setHorizontalAlignment(JTextField.RIGHT);// テキストエリアのカーソルを右側に出す
JPanel pane1 = new JPanel(new GridLayout(5, 4));// ボタン配置のためのパネル

String btnface[] = { "BS", "CL", "AC", "1", "2", "3", "+", "4", "5",
"6", "-", "7", "8", "9", "/", "0", "=", "+/-", "*" }; // ボタンの表示を作る
JLabel dummy = new JLabel();// 無記入のラベルをひとつ作る
pane1.add(dummy);// pane1の1番始めのグリッドを空白にするためにひとつ付け足す
JButton btn;
for (int i = 0; i < btnface.length; i++) {
btn = new JButton(btnface[i]);
btn.addActionListener(this); //ActionListenerをbtn(作成したボタン)にadd(付け加えて)している。これでpublic void actionPerformed(ActionEvent e) が呼び出されるようになった!
pane1.add(btn);
}

this.add(pane, BorderLayout.NORTH);
this.add(pane1, BorderLayout.CENTER);

pane.setBackground(new Color(00, 00, 00));
this.setVisible(true);
display("0");

}

public void display(String t) {
display.setText(t);

}

public void actionPerformed(ActionEvent e) {
display("INTERNET");
// TODO 自動生成されたメソッド・スタブ

}

public static void main(String[] args) {
Calctest frame = new Calctest("電卓");

}
}

電卓アプリを作成すると基礎がだいぶ身につくということで、復習しながら作成中です。

やっと、外見を作成完了?


ここまで。


次は処理を考えます。


package swingsam;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.prefs.BackingStoreException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Calctest extends JFrame implements ActionListener {
public Calctest(String s) {
super(s);
// フレームの構成
this.setSize(320, 240);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new BorderLayout());

// ボタンなど、画面の構成

JPanel pane = new JPanel(new GridLayout(1, 1)); // 結果表示のためのパネル
JTextField display = new JTextField(10); // 結果表示のためのテキストエリア
this.add(pane); //結果表示のためのパネルをフレームに組み込む
pane.add(display);// 結果表示のためのテキストエリアをパネルにはめ込んで見えるようにする
display.setHorizontalAlignment(JTextField.RIGHT);//テキストエリアのカーソルを右側に出す
JPanel pane1 = new JPanel(new GridLayout(5, 4));// ボタン配置のためのパネル

String btnface[] = { "BS", "CL", "AC", "1", "2", "3","+", "4", "5", "6","-",
"7", "8", "9", "/","0" ,"=","+/-","*"}; //ボタンの表示を作る
JLabel dummy = new JLabel();//無記入のラベルをひとつ作る
pane1.add(dummy);//pane1の1番始めのグリッドを空白にするためにひとつ付け足す
JButton btn;
for (int i = 0; i < btnface.length; i++) {
btn = new JButton(btnface[i]);
pane1.add(btn);
}

this.add(pane, BorderLayout.NORTH);
this.add(pane1, BorderLayout.CENTER);

pane.setBackground(new Color(00, 00, 00));
this.setVisible(true);

}

public void actionPerformed(ActionEvent e) {
// TODO 自動生成されたメソッド・スタブ

}

public static void main(String[] args) {
Calctest frame = new Calctest("電卓");

}
}

package jibunyou;

/**
* キャストについて キャストは何らかの理由で自動型変換とは逆の方向に変換したいときに実行します
*
* @author ASK
*
*/

public class S2_6cast {

/**
*
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ

int n = (int) 97.6; // doubleをintへキャスト
double x = (double) n; // intをdoubleへキャスト(本来は不要)
byte b = (byte) n; // intをbyteへキャスト
char c = (char) b; //byteをcharへキャスト
//
int m=(int)(5*1.3); //式もキャストできる

System.out.println(n);
System.out.println(x);
System.out.println(b);
System.out.println(c);
System.out.println(m);

System.out.println("AAA");
x =(double)1/2; //先に数字を見てint型だと勝手に判断するから、double型へキャストしてあげないと計算結果が0になる
System.out.println(x);

}

}

package jibunyou;
/**
* エスケープ文字を表示してみる
* @author ASK
*
*/

public class S2_6escapemoji {

/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
System.out.println("ABC\tDEF\tGHI"); // \tはTabと同じように間隔をあける
System.out.println("12345\n67890"); // \nは改行になる
System.out.println("\"\'\\"); //それぞれ該当する文字として表示

}

}