/***************************************** UI程式設計範本 *************************************************/ import java.awt.*; import javax.swing.*; import java.awt.event.*; //想想還有沒有其他的東西要import public class d1 extends JFrame implements ActionListener//名稱改一改 { Container c; int sec=0,min=0; Timer t; int cx=300,cy=270; //設定UI元件 JLabel lab1,lab2; JTextField txt1,txt2; JButton bot; //設定共用的變數與類別 public d1() //建構元,名稱改一改 { super("時鐘範例"); //初始化共用變數 c=getContentPane();//取得ContentPane //設定版面設定 c.setLayout(new FlowLayout()); lab1=new JLabel("分"); lab2=new JLabel("秒"); txt1=new JTextField(min+"",4); txt2=new JTextField(sec+"",4); bot=new JButton("設定"); c.add(txt1);c.add(lab1);c.add(txt2);c.add(lab2);c.add(bot); //初始化UI元件 t=new Timer(1000,this); t.start(); //將UI元件加入ContentPane //設定UI元件與滑鼠的事件觸發傾聽者 bot.addActionListener(this); setSize(640,480);//設定size,顯示出去 setVisible(true); } public void paint(Graphics g) { super.paint(g);//畫出元件 //額外的畫圖程式寫在這裡 g.drawOval(cx-200,cy-200,400,400); int x,y; g.setColor(Color.blue); x=(int)(cx+150*Math.cos((0.5-sec*6/180.0)*Math.PI)); y=(int)(cy-150*Math.sin((0.5-sec*6/180.0)*Math.PI)); g.drawLine(cx,cy,x,y); g.setColor(Color.red); x=(int)(cx+130*Math.cos((0.5-min*6/180.0)*Math.PI)); y=(int)(cy-130*Math.sin((0.5-min*6/180.0)*Math.PI)); g.drawLine(cx,cy,x,y); } public void actionPerformed(ActionEvent e) { if (e.getSource()==t) { sec=(sec+1); if (sec>=60) { min=min+1; sec=sec%60; } } else if (e.getSource()==bot) { sec=Integer.parseInt(txt2.getText()); min=Integer.parseInt(txt1.getText()); } repaint(); } //UI元件事件處理類別寫在這裡 //滑鼠事件處理類別寫在這裡 /***主程式***/ public static void main(String args[]) //程式起點 { d1 app=new d1(); //名稱改一改,啟動UI元件 app.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { System.exit(0); } }); //處理視窗關閉要求 } }