如何在从数据库获取的jtable列表中双击一行时打开文档

时间:2013-11-30 04:04:41

标签: java

JFilechooser选择我要在数据库中上传的文件,选择的文件名转到数据库和文件夹中的文件,我现在可以通过gui在我的jtable中显示数据库表我需要做的是当我双击任何表格的行时,我希望打开文档。我该怎么做?

//code to attach the document to a folder and its name to the database

    private void add_newActionPerformed(java.awt.event.ActionEvent evt){                                          
try {
JFileChooser selectedFile = new JFileChooser();
int a = selectedFile.showOpenDialog(null);
File file = selectedFile.getSelectedFile();
Path dscPath = Paths.get(Paths.get("").toAbsolutePath()+ "\\store\\"+file.getName());
Path path = Files.copy(Paths.get(file.getAbsolutePath()), dscPath  ,StandardCopyOption.REPLACE_EXISTING);

SqlFunctions sql = new SqlFunctions();
sql.StoreFileName(file.getName());

System.out.println("File uploaded is "+file.getName());

    } catch (IOException ex) {
        Logger.getLogger(MainWindow.class.getName()).log(Level.SEVERE, null, ex);
    }
}      

//从数据库填充jtable数据的代码 private void Update_table(){     尝试{

Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/uploader","root","");
String sql="select * from files";
pst=conn.prepareStatement(sql);
rs=pst.executeQuery(sql);
table_documentinfo.setModel(DbUtils.resultSetToTableModel(rs));
}catch(Exception e){
    JOptionPane.showMessageDialog(null, e);
}

}

//在数据库中存储文件名的方法

 public void StoreFileName(String fileName){
    String sql = "INSERT INTO files VALUES ("+null+",'"+fileName+"')";
   // String sql = "insert into files(fileName) "+ "values(?)";
    System.out.println(sql);

    try {
        stmt.executeUpdate(sql);
    } catch (SQLException ex) {
        System.out.println("Exception: "+ex.getMessage() );
    }catch (Exception ex){
        System.out.println("Error");
    }
}

} 我还没有实现mouseclick事件的代码来直接打开文档

1 个答案:

答案 0 :(得分:0)

应用一些逻辑进行双击。

使用类似标志的东西,在第二次点击后第一次点击n 2后将为1。仅当flag = 2时才打开文档。

你可以使用鼠标监听器。