2011年6月3日 星期五
6/3-Android匯率
根據上個禮拜,建立一個新專案Change,將下列的程式分別複製貼上到eclipse中
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, EX203!</string>
<string name="app_name">匯率換算</string>
<string name="str1">匯率換算</string>
<string name="str2">匯率</string>
<string name="str3">臺幣</string>
<string name="str_btn1">可兌換美金</string>
</resources>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:text="@string/str2"
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
<EditText
android:layout_height="wrap_content"
android:id="@+id/editText1"
android:text=""
android:layout_width="match_parent">
</EditText>
<TextView
android:text="@string/str3"
android:layout_height="wrap_content"
android:id="@+id/textView2"
android:layout_width="wrap_content">
</TextView>
<EditText
android:layout_height="wrap_content"
android:id="@+id/editText2"
android:text=""
android:layout_width="match_parent">
</EditText>
<Button
android:text="計算台幣兌換美金"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
<TextView
android:text="@string/str_btn1"
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
Change.java
package com.android.change;
import java.text.NumberFormat;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class Change extends Activity {
private EditText ed1, ed2;
private Button btn1;
private TextView tv1;
public static final String MY_PREFS = "mSharedPreferences01";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ed1 = (EditText)Change.this.findViewById(R.id.editText1); // 匯率
ed2 = (EditText)Change.this.findViewById(R.id.editText2); // 台幣
btn1 = (Button)Change.this.findViewById(R.id.button1);
tv1 = (TextView)Change.this.findViewById(R.id.textView3);
ed1.setText("28.5");
ed2.setText("100");
btn1.setOnClickListener(new Button.OnClickListener()
{
public void onClick(View arg0)
{
Double no1= Double.valueOf(ed1.getText().toString());
Double no2= Double.valueOf(ed1.getText().toString());
String sum= String.valueOf(no1*no2);
tv1.setText(sum);
btn1.setWidth(70);
// 按鈕事件,處理數學換算的語法
//NumberFormat nf = NumberFormat.getInstance();
//nf.setMaximumFractionDigits( 2 );
//double d = Double.parseDouble(ed2.getText().toString()) * Double.parseDouble(ed1.getText().toString());
//tv1.setText( Change.this.getResources().getString(R.string.str3) + ":" + nf.format(d) );
}
});
}
}
2011年5月19日 星期四
5/20-Eclipse
P1 到http://www.eclipse.org/downloads/下載eclipse 開啟時將workspace設在儲存資料夾的上面 例如 我將eclipse存在D槽的source資料夾 我就把workspace存在D:\workspace\ |
P2 進到eclipse 按 Tutorials選項然後按create a HelloWorld application 接著按照左邊的步驟操作 1.file→new→project ,專案名稱打 HelloWorld→next→finish |
2.file→new→class,按照圖中紅色框框輸入 |
3.在HelloWorld.java視窗,從右下角複製貼上System.out.println("Hello World!"); 4.按上面的"run" 就可以在下面的視窗看到執行後的結果 |
P3 安裝 ADT 擴充套件 照著步驟做 |
P4 點右邊的download 然後點圖中紅色框框的壓縮檔下載 將檔案存到source |
P6 按照圖中1234步驟操作 |
P7 按照圖中123步驟操作 中間可以調大小 |
P8 可以看到一手機圖!! |
P9 利用http://code.google.com/p/androidbmi/wiki/ReadSource 建立一新專案(BMI) 可以看到如圖中結果 |
更詳細說明請參考建立Android新專案
5/13
01 到老師的部落格點這兩個連結 |
02 下載紅色框框裡面的四個檔案到source資料夾 dcm為影像檔 bat為文字檔(按右鍵→編輯→執行) |
03 解壓縮ij129.zip 複製裡面的ij.java到jre/lib/ext 或到source→ 參考run2.bat編譯執行 可以得到一醫學影像 set CLASSPATH=ij.jar;.是設定路徑 |
04 紅色框框裡可改視窗名稱 setsize可改影像大小 綠色框框是為了讓圖秀出來 |
05 加上紅色框框裡的字 imageprocessor 是為了可以做下一部影像處理的動作 |
06 加上紅色框框裡的字 可以讓影像有雜訊 如圖所示 (從上禮拜5/6號的程式複製而來) |
2011年5月6日 星期五
5/6
P6 開啟index.html 我們就可以改成我們要的圖片跟長寬 如果不用網頁來開啟. 要用appletviewer 我們就要用appletviewer.exe來執行index.html |
P5 ipdemo裡面有個ij.jar 將他移到jre\lib\ext資料夾裡 |
將它存到source資料夾裡 順便也把上禮拜的染色體圖存到ipdemo資料夾裡 |
P3 現在有了文字方塊了 但是要如何把時間設定程在文字方塊裡顯示呢 利用("Being ticked " + Calendar.getInstance().getTime()); 刪掉Being ticked 並且在最前面加上 tbx1.setText 就可以了!! |
P2 為了讓時間可以在文字方塊裡面顯示 我們利用之前eightpuzzle的程式 將會用到的panel.文字方塊.GridLayout都貼過來 記得~套件也必須複製過來喔 注意!!!要在Timer Demo後面加上extends JFrame 代表繼承 不然程式會有錯誤喔 |
P1 到上禮拜介紹的網站http://www.rgagnon.com/javadetails/java-0144.html 複製TimerDemo到wordpad 將\007刪除可以讓它不要吵=ˇ= |
2011年4月28日 星期四
04/29 封裝
到"程式設計工藝大師"裡的連結"Java電子書",點"封裝",將程式碼 複製到wordpad並存檔,注意:檔名須跟class後的名稱相同!! |
將下面一段剪下 |
另外開啟一個新wordpad,貼上,並存檔 |
我們另外加一段(紅色框框裡的) |
大家可以分別將兩個程式編譯執行看看,可以看到Object1可以執行, 而Person1不可執行,主要是因為Person1沒有"main"!! |
我們將宣告的寫法改變,將 Person1 P1,P2; P1=...; P2=...; 改成 Person1 P1=...; Person1 P2=...; 兩者意思相同,只是比較喜歡用後者表示 |
在Object1加上紅色框框裡的字 紅色框框對應到紅色框框 綠色框框對應到綠色框框 |
執行後可以看到紅色框框的結果! 到這邊大概可以了解封裝的意思,它可以讓我們不用把程式 寫得很多很複雜,而可以用比較簡便的方式來寫 |
利用上禮拜的eightpuzzle的程式來試試看 public SwingEightPuzzleEvent() { }//建構子 |
將下面會用到的物件通通拿到上面加上static宣告 (各種顏色的框框分別對應) 這樣就不用在程式中重複宣告 這樣就可以讓程式看起來簡潔許多!! |
到http://www.rgagnon.com/javadetails/java-0144.html複製並且執行,可以看到實際運用! |
2011年4月22日 星期五
04/22 BINGO!
首先到 http://tccnchsu.blogspot.com/ 複製第8週程式碼
將最下面的部分
String stringValue;
stringValue=tbx1.getText();
int intValue = Integer.parseInt(stringValue);
System.out.println(intValue);
buttons[intValue].setBackground(Color.blue);
labels[intValue].setText(stringValue);
改成
如圖中紅色框框部分
int rndon=(int)(Math.random()*9); //產生亂數
利用for迴圈省去一個個改數字的麻煩
利用tmp來產生亂數(將tmp視為一個暫時的位子)
因為我們的目的是產生5X5個亂數
所以記得將這些地方修改掉
最後程式碼變為
// with event
//Swing, JButton類別 有ActionListener
//Swing, JButton類別
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
public class SwingTestEvent extends JFrame implements ActionListener
{
//static JFrame myfrm=new JFrame("JButton class"); // Java Class JFrame
//static AwtTestEvent myfrm=new AwtTestEvent("JFrame 1 "); // Java Class JFrame
static JTextField tbx1=new JTextField(2); // 建立1文字方塊物件
static JButton buttons[]=new JButton[25];
static JLabel labels[]=new JLabel [25];
public static void main(String args[])
{
SwingTestEvent myfrm=new SwingTestEvent();
String numbers[] = {"0","1", "2","3", "4","5", "6","7", "8","9", "10","11", "12","13", "14","15", "16","17", "18","19", "20","21", "22","23", "24" };
FlowLayout flow=new FlowLayout();
GridLayout grid12= new GridLayout(1,2);
GridLayout grid33= new GridLayout(5,5);
myfrm.setLayout(grid12);
myfrm.setSize(900,600);
JPanel p1 = new JPanel(grid33); //實作 panel 1
for (int i = 0; i < numbers.length; i++)
{
buttons[i] = new JButton(numbers[i]); // create buttons
p1.add(buttons[i], grid33); // 在 panel 1內加入按鈕陣列
}
myfrm.add(p1); // 在視窗myfrm 內加入 panel 1
JPanel p3 = new JPanel(grid33); //實作 panel 3
for (int i = 0; i < numbers.length; i++)
{
labels[i] = new JLabel(); // create labels
p3.add(labels[i], grid33); // 在 panel 1內加入按鈕陣列
}
myfrm.add(p3); // 在視窗myfrm 內加入 panel 3
JPanel p2 = new JPanel(flow); //實作 panel 2
JButton btn1=new JButton("JButton 1"); // 建立按鈕物件 btn1
btn1.addActionListener(myfrm);
p2.add(tbx1); // 在 panel 2內加入文字方塊
p2.add(btn1); // 在 panel 2內加入按鈕
myfrm.add(p2); // 在視窗myfrm 內加入 panel 2
myfrm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String numbers[] = {"0","1", "2","3", "4","5", "6","7", "8","9", "10","11", "12","13", "14","15", "16","17", "18","19", "20","21", "22","23", "24" };
String stringValue;
String tmp;
//stringValue=tbx1.getText();
/*
for (int i = 0; i < 9; i++)
{
int rndno = (int)(Math.random()*9);
System.out.println(rndno);
numbers[i]=String.valueOf(rndno);
buttons[i].setLabel(numbers[i]);
}
*/
for (int i = 0; i <25; i++)
{
int y=24-i;
int rndno = (int)(Math.random()*(y+1));
System.out.println(rndno);
tmp=numbers[y];
numbers[y]=numbers[rndno];
numbers[rndno]=tmp;
}
for (int i = 0; i < 25; i++)
{
System.out.println(numbers[i]);
buttons[i].setLabel(numbers[i]);
}
//tbx1.setText(numbers[0]);
//buttons[rndno].setBackground(Color.pink);
//labels[rndno].setText(numbers[0]);
}
}
注意
// with event
//Swing, JButton類別 有ActionListener
//Swing, JButton類別
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingTestEvent extends JFrame implements ActionListener
{
//static JFrame myfrm=new JFrame("JButton class"); // Java Class JFrame
//static AwtTestEvent myfrm=new AwtTestEvent("JFrame 1 "); // Java Class JFrame
static JTextField tbx1=new JTextField(2); // 建立1文字方塊物件
static JButton buttons[]=new JButton[10];
static JLabel labels[]=new JLabel [10];
public static void main(String args[])
{
SwingTestEvent myfrm=new SwingTestEvent();
String numbers[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8"};
FlowLayout flow=new FlowLayout();
GridLayout grid12= new GridLayout(1,2);
GridLayout grid33= new GridLayout(3,3);
myfrm.setLayout(grid12);
myfrm.setSize(450,450);
JPanel p1 = new JPanel(grid33); //實作 panel 1
for (int i = 0; i < numbers.length; i++)
{
buttons[i] = new JButton(numbers[i]); // create buttons
p1.add(buttons[i], grid33); // 在 panel 1內加入按鈕陣列
}
myfrm.add(p1); // 在視窗myfrm 內加入 panel 1
JPanel p3 = new JPanel(grid33); //實作 panel 3
for (int i = 0; i < numbers.length; i++)
{
labels[i] = new JLabel(); // create labels
p3.add(labels[i], grid33); // 在 panel 1內加入按鈕陣列
}
myfrm.add(p3); // 在視窗myfrm 內加入 panel 3
JPanel p2 = new JPanel(flow); //實作 panel 2
JButton btn1=new JButton("JButton 1"); // 建立按鈕物件 btn1
btn1.addActionListener(myfrm);
p2.add(tbx1); // 在 panel 2內加入文字方塊
p2.add(btn1); // 在 panel 2內加入按鈕
myfrm.add(p2); // 在視窗myfrm 內加入 panel 2
myfrm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String stringValue;
stringValue=tbx1.getText();
int intValue = Integer.parseInt(stringValue);
System.out.println(intValue);
buttons[intValue].setBackground(Color.blue);
labels[intValue].setText(stringValue);
}
}
//Swing, JButton類別 有ActionListener
//Swing, JButton類別
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingTestEvent extends JFrame implements ActionListener
{
//static JFrame myfrm=new JFrame("JButton class"); // Java Class JFrame
//static AwtTestEvent myfrm=new AwtTestEvent("JFrame 1 "); // Java Class JFrame
static JTextField tbx1=new JTextField(2); // 建立1文字方塊物件
static JButton buttons[]=new JButton[10];
static JLabel labels[]=new JLabel [10];
public static void main(String args[])
{
SwingTestEvent myfrm=new SwingTestEvent();
String numbers[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8"};
FlowLayout flow=new FlowLayout();
GridLayout grid12= new GridLayout(1,2);
GridLayout grid33= new GridLayout(3,3);
myfrm.setLayout(grid12);
myfrm.setSize(450,450);
JPanel p1 = new JPanel(grid33); //實作 panel 1
for (int i = 0; i < numbers.length; i++)
{
buttons[i] = new JButton(numbers[i]); // create buttons
p1.add(buttons[i], grid33); // 在 panel 1內加入按鈕陣列
}
myfrm.add(p1); // 在視窗myfrm 內加入 panel 1
JPanel p3 = new JPanel(grid33); //實作 panel 3
for (int i = 0; i < numbers.length; i++)
{
labels[i] = new JLabel(); // create labels
p3.add(labels[i], grid33); // 在 panel 1內加入按鈕陣列
}
myfrm.add(p3); // 在視窗myfrm 內加入 panel 3
JPanel p2 = new JPanel(flow); //實作 panel 2
JButton btn1=new JButton("JButton 1"); // 建立按鈕物件 btn1
btn1.addActionListener(myfrm);
p2.add(tbx1); // 在 panel 2內加入文字方塊
p2.add(btn1); // 在 panel 2內加入按鈕
myfrm.add(p2); // 在視窗myfrm 內加入 panel 2
myfrm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String stringValue;
stringValue=tbx1.getText();
int intValue = Integer.parseInt(stringValue);
System.out.println(intValue);
buttons[intValue].setBackground(Color.blue);
labels[intValue].setText(stringValue);
}
}
將最下面的部分
String stringValue;
stringValue=tbx1.getText();
int intValue = Integer.parseInt(stringValue);
System.out.println(intValue);
buttons[intValue].setBackground(Color.blue);
labels[intValue].setText(stringValue);
改成
如圖中紅色框框部分
int rndon=(int)(Math.random()*9); //產生亂數
利用for迴圈省去一個個改數字的麻煩
利用tmp來產生亂數(將tmp視為一個暫時的位子)
String tmp;//宣告tmp
tmp=numbers[8];//第8個數字先坐在tmp→第8個位子是空的
numbers[8]=numbers[rndon];//產生的亂數坐到第8個位子→第8個位子被填滿,亂數的位子是空的
numbers[rndon]=tmp;//tmp位子數字(剛剛的第8個數字)坐到亂數的位子
利用不斷產生亂數,使得每一次每個位子的數字都會不一樣
所以記得將這些地方修改掉
最後程式碼變為
// with event
//Swing, JButton類別 有ActionListener
//Swing, JButton類別
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
public class SwingTestEvent extends JFrame implements ActionListener
{
//static JFrame myfrm=new JFrame("JButton class"); // Java Class JFrame
//static AwtTestEvent myfrm=new AwtTestEvent("JFrame 1 "); // Java Class JFrame
static JTextField tbx1=new JTextField(2); // 建立1文字方塊物件
static JButton buttons[]=new JButton[25];
static JLabel labels[]=new JLabel [25];
public static void main(String args[])
{
SwingTestEvent myfrm=new SwingTestEvent();
String numbers[] = {"0","1", "2","3", "4","5", "6","7", "8","9", "10","11", "12","13", "14","15", "16","17", "18","19", "20","21", "22","23", "24" };
FlowLayout flow=new FlowLayout();
GridLayout grid12= new GridLayout(1,2);
GridLayout grid33= new GridLayout(5,5);
myfrm.setLayout(grid12);
myfrm.setSize(900,600);
JPanel p1 = new JPanel(grid33); //實作 panel 1
for (int i = 0; i < numbers.length; i++)
{
buttons[i] = new JButton(numbers[i]); // create buttons
p1.add(buttons[i], grid33); // 在 panel 1內加入按鈕陣列
}
myfrm.add(p1); // 在視窗myfrm 內加入 panel 1
JPanel p3 = new JPanel(grid33); //實作 panel 3
for (int i = 0; i < numbers.length; i++)
{
labels[i] = new JLabel(); // create labels
p3.add(labels[i], grid33); // 在 panel 1內加入按鈕陣列
}
myfrm.add(p3); // 在視窗myfrm 內加入 panel 3
JPanel p2 = new JPanel(flow); //實作 panel 2
JButton btn1=new JButton("JButton 1"); // 建立按鈕物件 btn1
btn1.addActionListener(myfrm);
p2.add(tbx1); // 在 panel 2內加入文字方塊
p2.add(btn1); // 在 panel 2內加入按鈕
myfrm.add(p2); // 在視窗myfrm 內加入 panel 2
myfrm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String numbers[] = {"0","1", "2","3", "4","5", "6","7", "8","9", "10","11", "12","13", "14","15", "16","17", "18","19", "20","21", "22","23", "24" };
String stringValue;
String tmp;
//stringValue=tbx1.getText();
/*
for (int i = 0; i < 9; i++)
{
int rndno = (int)(Math.random()*9);
System.out.println(rndno);
numbers[i]=String.valueOf(rndno);
buttons[i].setLabel(numbers[i]);
}
*/
for (int i = 0; i <25; i++)
{
int y=24-i;
int rndno = (int)(Math.random()*(y+1));
System.out.println(rndno);
tmp=numbers[y];
numbers[y]=numbers[rndno];
numbers[rndno]=tmp;
}
for (int i = 0; i < 25; i++)
{
System.out.println(numbers[i]);
buttons[i].setLabel(numbers[i]);
}
//tbx1.setText(numbers[0]);
//buttons[rndno].setBackground(Color.pink);
//labels[rndno].setText(numbers[0]);
}
}
注意
for (int i = 0; i < 25; i++)
{
System.out.println( numbers[i]);
buttons[i].setLabel(numbers[i]);
}
是為了能夠看到產生的亂數
在60個數字裡產生25個亂數
只要改掉一些地方即可 25→60
// with event
//Swing, JButton類別 有ActionListener
//Swing, JButton類別
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
public class SwingTestEvent extends JFrame implements ActionListener
{
//static JFrame myfrm=new JFrame("JButton class"); // Java Class JFrame
//static AwtTestEvent myfrm=new AwtTestEvent("JFrame 1 "); // Java Class JFrame
static JTextField tbx1=new JTextField(2); // 建立1文字方塊物件
static JButton buttons[]=new JButton[25];
static JLabel labels[]=new JLabel [25];
public static void main(String args[])
{
SwingTestEvent myfrm=new SwingTestEvent();
String numbers[]=new String[61];
for (int i = 0; i <60; i++)
{
numbers[i]=String.valueOf(i);
}
FlowLayout flow=new FlowLayout();
GridLayout grid12= new GridLayout(1,2);
GridLayout grid33= new GridLayout(5,5);
myfrm.setLayout(grid12);
myfrm.setSize(900,600);
JPanel p1 = new JPanel(grid33); //實作 panel 1
for (int i = 0; i < 25; i++)
{
buttons[i] = new JButton(numbers[i]); // create buttons
p1.add(buttons[i], grid33); // 在 panel 1內加入按鈕陣列
}
myfrm.add(p1); // 在視窗myfrm 內加入 panel 1
JPanel p3 = new JPanel(grid33); //實作 panel 3
for (int i = 0; i < 25; i++)
{
labels[i] = new JLabel(); // create labels
p3.add(labels[i], grid33); // 在 panel 1內加入按鈕陣列
}
myfrm.add(p3); // 在視窗myfrm 內加入 panel 3
JPanel p2 = new JPanel(flow); //實作 panel 2
JButton btn1=new JButton("JButton 1"); // 建立按鈕物件 btn1
btn1.addActionListener(myfrm);
p2.add(tbx1); // 在 panel 2內加入文字方塊
p2.add(btn1); // 在 panel 2內加入按鈕
myfrm.add(p2); // 在視窗myfrm 內加入 panel 2
myfrm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String numbers[]=new String[61];
for (int i = 0; i <60; i++)
{
numbers[i]=String.valueOf(i);
}
String stringValue;
String tmp;
//stringValue=tbx1.getText();
System.out.println(tbx1.getText());
for (int i = 0; i <61; i++)
{
int y=60-i;
int rndno = (int)(Math.random()*(y+1));
System.out.println(rndno);
tmp=numbers[y];
numbers[y]=numbers[rndno];
numbers[rndno]=tmp;
}
for (int i = 0; i < 25; i++)
{
System.out.println(numbers[i]);
buttons[i].setLabel(numbers[i]);
}
//tbx1.setText(numbers[0]);
//buttons[rndno].setBackground(Color.pink);
//labels[rndno].setText(numbers[0]);
}
}
2011年4月1日 星期五
第7次上課
在google搜尋"Java Button listener" 我們在JFrame後面加上implements ActionListener 加上下面的紅色框框(將int跟string轉換) 可以得到結果!! |
我們想要將(9個button)跟(1個文字方塊+1個button)放在不同的panel 所以我們分別加入了兩個panel 把button跟textfield都加入各別的panel裡 再將panel都加到frame裡 |
在google搜尋"Java Button array" 參考網頁的方法,利用此方法可以省去很多麻煩 |
因為我們要加入許多按鈕,而BorderLayout只能用EAST、WEST...等 所以我們改用GridLayout,讓多個按鈕可以整齊排列 |
執行後可以看到這個結果 |
加入swing套件,並且在Button跟Frame跟TextField前面都加上J |
先到老師部落格複製 |
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingTest extends JFrame implements ActionListener
{
//static JFrame myfrm=new JFrame("JButton class"); // Java Class JFrame
static JTextField tbx1=new JTextField(); // 建立1文字方塊物件
static JButton bb1=new JButton("bb1 ");
public static void main(String args[])
{
SwingTest myfrm=new SwingTest();
JButton button[]=new JButton[10];
String numbers[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8"};
GridLayout border=new GridLayout(3,3);
JPanel p1 = new JPanel(border); //PREFERRED!
JPanel p2 = new JPanel(border); //PREFERRED!
bb1.addActionListener(myfrm);
for (int i = 0; i < numbers.length; i++)
{
button[i] = new JButton(numbers[i]); // create buttons
p1.add(button[i], border);
p2.add(tbx1, border);
p2.add(bb1, border);
}
myfrm.add(p1);
myfrm.add(p2);
myfrm.setLayout(border);
myfrm.setSize(250,150);
myfrm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
String stringValue;
stringValue=tbx1.getText();
int intValue = Integer.parseInt(stringValue);
System.out.println(stringValue);
}
}
2011年3月25日 星期五
第6次上課-button與textfield
到程式設計工藝大師裡面複製Basic Class Template of AWT的內容, 複製貼到wordpad裡,檔名必須與public class後的"AwtTest"相同 |
如圖中,編譯然後執行,即可看到button, 如果不能把button的視窗關掉,回到命令提示字元,按ctrl+C即可 |
我們可以另外加入許多button |
接下來我們想加入文字方塊,將"Button"改成"TextField" |
在網路上可以找到另一種文字方塊的寫法(Textbox), 但是它是用在javax底下,而我們所用的java\awt底下 文字方塊的寫法應為"TextField" |
btn1.addActionListener(myfrm); 加入此行,讓btn1有耳朵 |
將整數轉字串 |
// AWT, Button類別
import java.awt.*;
import java.awt.event.*;
public class AwtTest extends Frame implements ActionListener
{
//static Frame myfrm=new Frame("12356");
//static AwtTest myfrm=new AwtTest("Button class");
static Button btn1=new Button("btn1"); // 建立按鈕物件
static TextField tbx1=new TextField("tbx1"); //建立文字方塊
static TextField tbx2=new TextField("tbx2"); //建立文字方塊
static TextField tbx3=new TextField("tbx3"); //建立文字方塊
static TextField tbx4=new TextField("tbx4"); //建立文字方塊
static TextField tbx5=new TextField("tbx5"); //建立文字方塊
static TextField tbx6=new TextField("tbx6"); //建立文字方塊
static TextField tbx7=new TextField("tbx7"); //建立文字方塊
public static void main(String args[])
{
AwtTest myfrm = new AwtTest();
FlowLayout flow = new FlowLayout();
myfrm.setLayout(flow);
myfrm.setSize(200,150);
btn1.addActionListener(myfrm);
myfrm.add(btn1); // 在視窗內加入按鈕
myfrm.add(tbx1);
myfrm.add(tbx2);
myfrm.add(tbx3);
myfrm.add(tbx4);
myfrm.add(tbx5);
myfrm.add(tbx6);
myfrm.add(tbx7);
myfrm.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
int rn1,rn2, rn3,rn4,rn5,rn6,rn7;
rn1=(int) (Math.random()*49) ;
rn2=(int) (Math.random()*49) ;
rn3=(int) (Math.random()*49) ;
rn4=(int) (Math.random()*49) ;
rn5=(int) (Math.random()*49) ;
rn6=(int) (Math.random()*49) ;
rn7=(int) (Math.random()*49) ;
System.out.println(rn1);
System.out.println(rn2);
System.out.println(rn3);
System.out.println(rn4);
System.out.println(rn5);
System.out.println(rn6);
System.out.println(rn7);
String stringValue1 = Integer.toString(rn1);
String stringValue2 = Integer.toString(rn2);
String stringValue3 = Integer.toString(rn3);
String stringValue4 = Integer.toString(rn4);
String stringValue5 = Integer.toString(rn5);
String stringValue6 = Integer.toString(rn6);
String stringValue7 = Integer.toString(rn7);
tbx1.setText(stringValue1);
tbx2.setText(stringValue2);
tbx3.setText(stringValue3);
tbx4.setText(stringValue4);
tbx5.setText(stringValue5);
tbx6.setText(stringValue6);
tbx7.setText(stringValue7);
}
}
訂閱:
文章 (Atom)