import javax.swing.*;import java.awt.*;import java.awt.event.*;public class Example10_16 {? ? public static void main(String args[]){? ? Win win=new Win();? ? }}class Win extends JFrame implements ActionListener{ JTable table; Object a[][]; Object name[]={"商品名稱(chēng)","單價(jià)","銷(xiāo)售量","銷(xiāo)售額"}; JButton computerRows,computerColums; JTextField inputRowsNumber;//創(chuàng)建一個(gè)文本框 int initRows=1; JPanel pSouth,pNorth; JScrollPane ? js; int count=0,rowsNumber=0; Win(){ computerRows=new JButton("每件商品銷(xiāo)售額"); computerColums=new JButton("總銷(xiāo)售額"); inputRowsNumber=new JTextField(10); computerRows.addActionListener(this); computerColums.addActionListener(this); pSouth=new JPanel(); pNorth=new JPanel();//默認(rèn)為FlowLayout布局 pNorth.add(new JLabel("輸入表格行數(shù),回車(chē)確認(rèn)")); pNorth.add(inputRowsNumber); pSouth.add(computerRows); pSouth.add(computerColums); js=new JScrollPane(table); add(pSouth,BorderLayout.SOUTH); add(pNorth,BorderLayout.NORTH); add(js,BorderLayout.CENTER); setBounds(100,100,370,250); setVisible(true); ? ?setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); ? ? } public void actionPerformed(ActionEvent e){ if(e.getSource()==inputRowsNumber){ count=0; initRows=Integer.parseInt(inputRowsNumber.getText()); a=new Object[initRows][4]; for(int i=0;i<initRows;i++){ for(int j=0;j<4;j++) a[i][j]="0"; } table=new JTable(a,name);//name用于定義表格的列名 table.setRowHeight(20); getContentPane().removeAll();//移除添加的組件因?yàn)樾袛?shù)重新定義了,所以先移除,在后面再添加回帶有新行數(shù)的 js=new JScrollPane(table); add(js,BorderLayout.CENTER); add(pSouth,BorderLayout.SOUTH); add(pNorth,BorderLayout.NORTH); validate(); } else if(e.getSource()==computerRows){ int rows=table.getRowCount(); ? ? ? ? ? ?//獲取現(xiàn)有表格的行數(shù) for(int i=0;i<rows;i++){ double sum=1; boolean boo=true; for(int j=1;j<2;j++){ try{sum=sum*Double.parseDouble(a[i][j].toString());} catch(Exception ee){ boo=false; table.repaint();//表格更新顯示 } if(boo=true){ a[i][3]=""+sum; //修改數(shù)組中的數(shù)據(jù) } } } } else if(e.getSource()==computerColums){ if(count==0){ rowsNumber=table.getRowCount(); ? ?//獲取表格的目前的行數(shù) count++; } else{ rowsNumber=table.getRowCount(); ? ?//獲取表格的目前的行數(shù) rowsNumber=rowsNumber-1; ? ? ? ? ? //不要最后一行 } double totalSum=0; for(int j=0;j<rowsNumber;j++) totalSum=totalSum+Double.parseDouble(a[j][3].toString()); Object b[][]=new Object[rowsNumber+1][4]; //比數(shù)組a多一行的數(shù)組 for(int i=0;i<rowsNumber;i++){ ? ? ? ? ? ?//將數(shù)組a的數(shù)據(jù)復(fù)制到數(shù)組b中 for(int j=0;j<4;j++) b[i][j]=a[i][j]; } b[rowsNumber][0]="一共有"+rowsNumber+"件商品"; b[rowsNumber][3]="總銷(xiāo)售額:"+totalSum; a=b; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//重新初始化a table=new JTable(a,name); getContentPane().removeAll(); ? ? ? ? ? ?//移除所有添加組件方便修改表 add(new JScrollPane(table),BorderLayout.CENTER); add(pSouth,BorderLayout.SOUTH); add(pNorth,BorderLayout.NORTH); validate(); } }}
為什么eclipse 里面顯示不了表格 求大神解答謝謝了
慕碼人7768818
2018-01-16 16:39:08