importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
classWinextendsJFrameimplementsActionListener
{
JTabletable;
Objecta[][];
Objectname[]={"商品名称","单价","销售量","销售额"};
JButtoncomputerRows,computerColums;
JTextFieldinputRowsNumber;
intinitRows=1;
JPanelpSouth,pNorth;
intcount=0,rowsNumber=0;
Win()
{
computerRows=newJButton("每件商品销售额");
computerColums=newJButton("总销售额");
inputRowsNumber=newJTextField(10);
computerRows.addActionListener(this);
computerColums.addActionListener(this);
inputRowsNumber.addActionListener(this);
pSouth=newJPanel();
pNorth=newJPanel();
pNorth.add(newJLabel("输入表格行数,回车确认"));
pNorth.add(inputRowsNumber);
pSouth.add(computerRows);
pSouth.add(computerColums);
getContentPane().add(pSouth,BorderLayout.SOUTH);
getContentPane().add(pNorth,BorderLayout.NORTH);
getContentPane().add(newJScrollPane(table),BorderLayout.CENTER);
setSize(370,250);
setVisible(true);
getContentPane().validate();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==inputRowsNumber)
{
count=0;
initRows=Integer.parseInt(inputRowsNumber.getText());
a=newObject[initRows][4];
for(inti=0;i
{
for(intj=0;j<4;j++)
{
a[i][j]="0";
}
}
table=newJTable(a,name);
table.setRowHeight(20);
getContentPane().removeAll();
getContentPane().add(newJScrollPane(table),BorderLayout.CENTER);
getContentPane().add(pSouth,BorderLayout.SOUTH);
getContentPane().add(pNorth,BorderLayout.NORTH);
validate();
}
elseif(e.getSource()==computerRows)
{
introws=table.getRowCount();//获取现有表格的行数。
for(inti=0;i {
doublesum=1;
booleanboo=true;
for(intj=1;j<=2;j++)
{
try{
sum=sum*Double.parseDouble(a[i][j].toString());
}
catch(Exceptionee)
{
boo=false;
table.repaint();//表格更新显示。
}
if(boo==true)
{
a[i][3]=""+sum;//修改数组中的数据。
table.repaint();
}
}
}
}
elseif(e.getSource()==computerColums)
{
if(count==0)
{
rowsNumber=table.getRowCount();//获取表格的目前的行数。
count++;
}
else
{
rowsNumber=table.getRowCount();///获取表格的目前的行数。
rowsNumber=rowsNumber-1;//不要最后一行。
}
doubletotalSum=0;
for(intj=0;j {
totalSum=totalSum+Double.parseDouble(a[j][3].toString());
}
Objectb[][]=newObject[rowsNumber+1][4];//比数组a多一行的数组。
for(inti=0;i {
for(intj=0;j<4;j++)
b[i][j]=a[i][j];
}
b[rowsNumber][0]="一共有"+rowsNumber+"件商品";
b[rowsNumber][3]="总销售额:"+totalSum;
a=b;//重新初始化a。
table=newJTable(a,name);
getContentPane().removeAll();
getContentPane().add(newJScrollPane(table),BorderLayout.CENTER);
getContentPane().add(pSouth,BorderLayout.SOUTH);
getContentPane().add(pNorth,BorderLayout.NORTH);
validate();
}
}
}
publicclassExample
{
publicstaticvoidmain(Stringargs[])
{
Winwin=newWin();
}
}