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);
}
}

沒有留言:

張貼留言