2015年4月23日 星期四

[第六週]增加按鈕&讓按鈕皆能個別執行之土法煉鋼法

以上禮拜的程式碼(名為Test.java)為例:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Test
{


public static void main(String[] args)
{
JFrame jtfMainFrame = new JFrame("Which Button Demo");
jtfMainFrame.setSize(450, 150);
JButton  jbnButton1 = new JButton("Button 1");
JPanel jplPanel = new JPanel();
jplPanel.add(jbnButton1);
jtfMainFrame.getContentPane().add(jplPanel, BorderLayout.CENTER);
jtfMainFrame.setVisible(true);
System.out.print("yu-min liaw");
}
}

執行結果如下:


========================================================================
現在,我們要讓程式增加按鈕(名為Test1.java):
從上禮拜知道:

JButton  jbnButton1 = new JButton("Button 1");
是新增按鈕的指令

jplPanel.add(jbnButton1);
則是增加按鈕物件的程式碼
所以我們讓程式碼新增一個Buttion2如下:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Test1
{
public static void main(String[] args)
{
JFrame jtfMainFrame = new JFrame("Which Button Demo");
jtfMainFrame.setSize(450, 150);
JButton  jbnButton1 = new JButton("Button 1");
JButton  jbnButton2 = new JButton("Button 2");

JPanel jplPanel = new JPanel();
jplPanel.add(jbnButton1);
jplPanel.add(jbnButton2);

jtfMainFrame.getContentPane().add(jplPanel, BorderLayout.CENTER);
jtfMainFrame.setVisible(true);
System.out.print("yu-min liaw");
}
}

執行結果就會如下:


以此類推,我們讓按鈕增加至1~9,物件也增加1~9
JButton  jbnButton1 = new JButton("Button 數字1~9");
jplPanel.add(jbnButton數字1~9);


即如下程式碼:

import java.awt.*;

import java.awt.event.*;
import javax.swing.*;
class Test1
{


public static void main(String[] args)
{
JFrame jtfMainFrame = new JFrame("Which Button Demo");
jtfMainFrame.setSize(450, 150);
JButton  jbnButton1 = new JButton("Button 1");
JButton  jbnButton2 = new JButton("Button 2");
JButton  jbnButton3 = new JButton("Button 3");
JButton  jbnButton4 = new JButton("Button 4");
JButton  jbnButton5 = new JButton("Button 5");
JButton  jbnButton6 = new JButton("Button 6");
JButton  jbnButton7 = new JButton("Button 7");
JButton  jbnButton8 = new JButton("Button 8");
JButton  jbnButton9 = new JButton("Button 9");
JPanel jplPanel = new JPanel();
jplPanel.add(jbnButton1);
jplPanel.add(jbnButton2);
jplPanel.add(jbnButton3);
jplPanel.add(jbnButton4);
jplPanel.add(jbnButton5);
jplPanel.add(jbnButton6);
jplPanel.add(jbnButton7);
jplPanel.add(jbnButton8);
jplPanel.add(jbnButton9);
jtfMainFrame.getContentPane().add(jplPanel, BorderLayout.CENTER);
jtfMainFrame.setVisible(true);
System.out.print("yu-min liaw");
}
}

執行結果圖:

========================================================================

接下來,我們要讓個別按鈕點下去之後 會有個別回應(名為Test2.java):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Test2
{
public static void main(String[] args)
{
JFrame jtfMainFrame = new JFrame("Which Button Demo");
jtfMainFrame.setSize(450, 150);
JButton  jbnButton1 = new JButton("Button 1");
JButton  jbnButton2 = new JButton("Button 2");
JButton  jbnButton3 = new JButton("Button 3");
JButton  jbnButton4 = new JButton("Button 4");
JButton  jbnButton5 = new JButton("Button 5");
JButton  jbnButton6 = new JButton("Button 6");
JButton  jbnButton7 = new JButton("Button 7");
JButton  jbnButton8 = new JButton("Button 8");
JButton  jbnButton9 = new JButton("Button 9");
jbnButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 1!"); 
}
  });
JPanel jplPanel = new JPanel();
jplPanel.add(jbnButton1);
jplPanel.add(jbnButton2);
jplPanel.add(jbnButton3);
jplPanel.add(jbnButton4);
jplPanel.add(jbnButton5);
jplPanel.add(jbnButton6);
jplPanel.add(jbnButton7);
jplPanel.add(jbnButton8);
jplPanel.add(jbnButton9);
jtfMainFrame.getContentPane().add(jplPanel, BorderLayout.CENTER);
jtfMainFrame.setVisible(true);
System.out.print("yu-min liaw");

執行後,會如下圖:




由上面可知新增程式碼ActionListener可命令哪個按扭做回應
並用system.out使按鈕回應反映出來



以此類推,我們將上列新增的程式碼做延伸

jbnButton數字1~9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 數字1~9!"); 
}
  });

即如下程式碼:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class Test2
{


public static void main(String[] args)
{
JFrame jtfMainFrame = new JFrame("Which Button Demo");
jtfMainFrame.setSize(450, 150);
JButton  jbnButton1 = new JButton("Button 1");
JButton  jbnButton2 = new JButton("Button 2");
JButton  jbnButton3 = new JButton("Button 3");
JButton  jbnButton4 = new JButton("Button 4");
JButton  jbnButton5 = new JButton("Button 5");
JButton  jbnButton6 = new JButton("Button 6");
JButton  jbnButton7 = new JButton("Button 7");
JButton  jbnButton8 = new JButton("Button 8");
JButton  jbnButton9 = new JButton("Button 9");
jbnButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 1!"); 
}
  });
jbnButton2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 2!"); 
}
  });
jbnButton3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 3!"); 
}
  });
jbnButton4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 4!"); 
}
  });
jbnButton5.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 5!"); 
}
  });
jbnButton6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 6!"); 
}
  });
jbnButton7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 7!"); 
}
  });
jbnButton8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 8!"); 
}
  });
jbnButton9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
 {
System.out.println("Button 9!"); 
}
  });
JPanel jplPanel = new JPanel();
jplPanel.add(jbnButton1);
jplPanel.add(jbnButton2);
jplPanel.add(jbnButton3);
jplPanel.add(jbnButton4);
jplPanel.add(jbnButton5);
jplPanel.add(jbnButton6);
jplPanel.add(jbnButton7);
jplPanel.add(jbnButton8);
jplPanel.add(jbnButton9);
jtfMainFrame.getContentPane().add(jplPanel, BorderLayout.CENTER);
jtfMainFrame.setVisible(true);
System.out.print("yu-min liaw");
}
}

執行結果圖:

沒有留言:

張貼留言