/***************************************** 展示JComboBox *************************************************/ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; public class ui29 extends JFrame implements ActionListener,ItemListener { Container c; JButton bot0,bot1; Color pencolor[]=new Color[5]; String[] cname={"白色","綠色","藍色","紅色","黃色"} ; JComboBox cbox; int cpt=0; int clear_mode=1;//一開始先清除畫面 int now_x=0,now_y=0; public ui29() { super("JComboBox展示"); int i; int x; c=getContentPane(); pencolor[0]=Color.white; pencolor[1]=Color.green; pencolor[2]=Color.blue; pencolor[3]=Color.red; pencolor[4]=Color.yellow; c.setLayout(new FlowLayout(FlowLayout.CENTER)); cbox=new JComboBox(cname);// 設定選項 bot0=new JButton("結束"); bot1=new JButton("清除"); c.add(bot0); c.add(bot1); c.add(cbox); cbox.addItemListener(this);//設定顏色選擇 bot0.addActionListener(this); bot1.addActionListener(this); addMouseMotionListener(new checkmouse());//設定滑鼠 setSize(350,500); setVisible(true); } public void paint(Graphics g) { if (clear_mode==1) super.paint(g); g.setColor(pencolor[cpt]); g.drawLine(now_x,now_y,now_x,now_y); } /***按鈕事件的傾聽方法****/ public void actionPerformed(ActionEvent e) //按鈕事件的處理方法 { if (e.getSource()==bot0) { System.exit(0); } else if (e.getSource()==bot1) { clear_mode=1; }//bot1 repaint(); } public void itemStateChanged(ItemEvent e) { cpt=cbox.getSelectedIndex();//看看選到哪一個就設定顏色 repaint(); } /*****實作滑鼠移動事件處理物件 *******/ class checkmouse extends MouseMotionAdapter { public void mouseDragged(MouseEvent e) { now_x=e.getX(); now_y=e.getY(); clear_mode=0;//開始畫圖,不可以清掉舊資料 repaint(); //重新顯示一次 } }//checkmouse public static void main(String args[]) //程式起點 { ui29 app=new ui29(); //畫圖 //處理視窗關閉要求 app.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);} }); } }