/***************************************** 展示Jtable簡易用法(發牌) *************************************************/ import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*; public class ui32 extends JFrame implements ActionListener { ImageIcon icon; Container c; JButton bot0,bot1; String[] cname={"東家","南家","西家","北家"} ; String[] card_name={"梅花","方塊","紅桃","黑桃"} ; Object[][] card =new String[13][4]; JComboBox cbox; JTable dsp; Random randomG=new Random(); int[] dcard=new int[52]; //用來記錄該牌是否已被發出 public ui32() { super("Jtable簡易用法(發牌)"); int i,j; int x; c=getContentPane(); c.setLayout(new FlowLayout(FlowLayout.CENTER)); bot0=new JButton("結束"); bot1=new JButton("抽牌"); dsp=new JTable(card,cname); //設定JTable for (i=0;i<=51;i=i+1) dcard[i]=0;//把牌設定為沒有發出去 for (i=0;i<13;i=i+1) for (j=0;j<4;j=j+1) { x=randomG.nextInt(52); while (dcard[x]!=0) x=randomG.nextInt(52); dcard[x]=1; if (x%13==12) card[i][j]=new String(card_name[x/13]+"K"); else if (x%13==11) card[i][j]=new String(card_name[x/13]+"Q"); else if(x%13==10) card[i][j]=new String(card_name[x/13]+"J"); else card[i][j]=new String(card_name[x/13]+""+(x%13+1)); } //先發牌 c.add(bot0); c.add(bot1); c.add(dsp.getTableHeader()); c.add(dsp); bot0.addActionListener(this); bot1.addActionListener(this); setSize(350,500); setVisible(true); } public void paint(Graphics g) { super.paint(g); } /***按鈕事件的傾聽方法****/ public void actionPerformed(ActionEvent e) //按鈕事件的處理方法 { if (e.getSource()==bot0) { System.exit(0); } else if (e.getSource()==bot1)//抽牌 { int i,j,x; for (i=0;i<=51;i=i+1) dcard[i]=0;//把牌設定為沒有發出去 for (i=0;i<13;i=i+1) for (j=0;j<4;j=j+1) { x=randomG.nextInt(52); while (dcard[x]!=0) x=randomG.nextInt(52); dcard[x]=1; if (x%13==12) card[i][j]=new String(card_name[x/13]+"K"); else if (x%13==11) card[i][j]=new String(card_name[x/13]+"Q"); else if(x%13==10) card[i][j]=new String(card_name[x/13]+"J"); else card[i][j]=new String(card_name[x/13]+""+(x%13+1)); } } repaint(); } public static void main(String args[]) //程式起點 { ui32 app=new ui32(); //畫圖 //處理視窗關閉要求 app.addWindowListener( new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);} }); } }