import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import java.io.File;
import java.io.*;
//import javax.swing.filechooser.FileFilter;
public class testTable implements ActionListener
{ JFrame f=new JFrame();
JTable table = null;
JLabel label= null;
DefaultTableModel defaultModel =null;
JFileChooser fileChooser=new JFileChooser();//文件选择
public testTable()
{
Object[][] p=
{
{"王磊",new Integer(20),new Integer(30),new Integer(20)},
{"张凡",new Integer(20),new Integer(30),new Integer(20)},
{"周欣",new Integer(20),new Integer(30),new Integer(20)},
{"张丽",new Integer(20),new Integer(30),new Integer(20)},
};
String[] n={"姓名","班级","年龄","薪水"};
defaultModel =new DefaultTableModel(p,n);//采用default模式
table =new JTable(defaultModel);
table.setPreferredScrollableViewportSize(new Dimension(400,80));
JScrollPane s=new JScrollPane(table);
JPanel panel= new JPanel();
JButton b2=new JButton("增加行");
panel.add(b2);
b2.addActionListener(this);
JButton b3=new JButton("删除行");
panel.add(b3);
b3.addActionListener(this);
JButton b4=new JButton("保存");//保存按钮
panel.add(b4);
b4.addActionListener(this);
Container contentPane =f.getContentPane();
contentPane.add(panel,BorderLayout.SOUTH);
contentPane.add(s,BorderLayout.CENTER);
f.setTitle("JTableDemo");
f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter()//关闭对话框
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
}
public void actionPerformed(ActionEvent e)//按键响应
{
File file =new File("");//
int result;
if (e.getActionCommand().equals("删除行"))//单击删除按钮删除行
{
int rowcount=defaultModel.getRowCount()-1;
if(rowcount>=0)
{
defaultModel.removeRow(rowcount);
defaultModel.setRowCount(rowcount);
}
}
if(e.getActionCommand().equals("打开")) //单击打开文件
try{
fileChooser.setApproveButtonText("确定");
fileChooser.setDialogTitle("打开文件");
result=fileChooser.showOpenDialog(f);
if( result==JFileChooser.APPROVE_OPTION)
{
file=fileChooser.getSelectedFile();
label.setText("要打开的文件为:"+file.getName());
}
else if( result==JFileChooser.CANCEL_OPTION)
{
label.setText("你没有打开任何文件");
}
}
catch(Exception ee){System.out.print("error"+ee); }
if(e.getActionCommand().equals("保存"))
try {
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
fileChooser.showSaveDialog(f);//显示保存对话框
String fi = file.getAbsolutePath()+".xls";
System.out.println(file);
FileWriter out = new FileWriter(fi);//新建输出
for (int i = 0; i < table.getColumnCount(); i++) {
out.write(table.getColumnName(i) + "\t");
}
out.write("\n");
for (int i = 0; i < table.getRowCount(); i++) {
for (int j = 0; j < table.getColumnCount(); j++) {
out.write(table.getValueAt(i, j).toString() + "\t");
}
out.write("\n");
}
out.close();
JOptionPane.showMessageDialog(null, "文件导出成功");
Runtime.getRuntime().exec("cmd /c start "" "" + fi+""");
}
// 打开生成的excel文件
catch (Exception ee) { ee.printStackTrace(); }
table.ridate();
}
public static void main(String args[])
{
new testTable();
}
}
JTable内容保存至excel
最新推荐文章于 2021-02-24 03:55:48 发布