# 數二乙物件導向程式設計(20220923) ### 數二乙 S1022106 鄭詠軒 1. [Application]利用Java的Scanner類別物件輸入並利用System靜態類別輸出。撰寫一程式輸入兩正整數a,b,求最大公因數。 ```java= import java.util.Scanner; class HW1 { int a, b; HW1(){ Scanner sc = new Scanner(System.in); a = sc.nextInt(); b = sc.nextInt(); System.out.println(GCD(a,b)); } public int GCD(int a, int b){ if (a > b) { if (a % b == 0) return b; else { return GCD(b, a % b); } } else { return GCD(b,a); } } } public class Example1 { public static void main(String[] args){ HW1 ex= new HW1(); } } ``` 2. [Application]利用Java的Random類別物件產生電腦亂數。撰寫一程式利用電腦亂數輸出10組0~100的正整數。 ```java= import java.util.Random; class HW2 { HW2(){ Random r = new Random(); for (int i = 0; i < 10; i++) { int x = r.nextInt(101); System.out.println(x); } } } public class Example2 { public static void main(String[] args){ HW2 ex= new HW2(); } } ``` 3. 呈現程式碼HelloEvent.java及執行截圖。 ```java= import javax.swing.*; import java.awt.*; import java.awt.event.*; public class HelloEvent implements ActionListener { JFrame f; JButton b; HelloEvent(){ f = new JFrame("HelloEvent"); f.setLayout(new FlowLayout()); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = f.getContentPane(); b = new JButton("HelloEvent"); b.addActionListener(this); c.add(b); f.setSize(600,400); f.setVisible(true); } public void actionPerformed(ActionEvent e){ JOptionPane.showMessageDialog(f,"HelloEvent"); } public static void main(String[] args){ new HelloEvent(); } } ``` ![](https://i.imgur.com/YTyxaRW.png) 4. [Swing]建立兩個JFrame物件(f1,f2),各放入一個JButton物件(b1,b2),一個顯示"Hello",另一個顯示"World",設定這兩個JButton的事件處理(ActionEvent),並顯示f1。當按下b1後隱藏f1顯示f2,當按下b2後隱藏f2顯示f1。呈現程式碼及執行截圖。 ```java= import javax.swing.*; import java.awt.*; import java.awt.event.*; public class HelloJFrame implements ActionListener { JFrame f1,f2; JButton b1,b2; HelloJFrame(){ f1 = new JFrame("Frame1"); f1.setLayout(new FlowLayout()); f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c1 = f1.getContentPane(); b1 = new JButton("Hello"); b1.addActionListener(this); c1.add(b1); f1.setSize(600,400); f1.setVisible(true); f2 = new JFrame("Frame2"); f2.setLayout(new FlowLayout()); f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c2 = f2.getContentPane(); b2 = new JButton("World"); b2.addActionListener(this); c2.add(b2); f2.setSize(600,400); f2.setVisible(false); } public void actionPerformed(ActionEvent e){ if(e.getSource()==b1){ f2.setVisible(true); f1.setVisible(false); } else{ f1.setVisible(true); f2.setVisible(false); } } // end of if-else public static void main(String[] args){ new HelloJFrame(); } } ``` ![](https://i.imgur.com/eZxUiCV.png) ![](https://i.imgur.com/pPE3YQu.png)