не могу нажать на jTable (jFileChooser) - PullRequest
0 голосов
/ 03 мая 2018

Как я могу показать файлы, когда вы нажимаете на jTable с помощью JFileChooser?

Я попробовал этот код, пожалуйста, сообщите мне, если вы обнаружите ошибку:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    JFileChooser chooser = new JFileChooser();
    chooser.showOpenDialog(null);
    File f = chooser.getSelectedFile();
    String fileName = f.getAbsolutePath();
    pathField.setText(fileName);
}

И этот код для отображения файла при нажатии на jTable:

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {                                     

    int row = jTable1.getSelectedRow();
    String value1 = (jTable1.getModel().getValueAt(row,3).toString());
    try {
        Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler "+value1);
    } catch (IOException ex) {
        JOptionPane.showMessageDialog(null,"Error");
    }

}

1 Ответ

0 голосов
/ 03 мая 2018

Что немного удивляет в вашем коде, так это метод jButton2ActionPerformed(java.awt.event.ActionEvent evt).

Обычно вы обрабатываете Java ActionEvents, реализуя ActionListener и затем перезаписывая метод public void actionPerformed(ActionEvent e). После этого вы добавите прослушиватель действий в компонент. То же самое касается MouseEvent (MouseListener) или KeyEvent (KeyListener).

Поскольку вы не опубликовали достаточно кода для понимания внутренней работы вашей программы, я просто перенаправлю вас к руководству, найденному здесь , и надеюсь, что это решит вашу проблему.

Тем не менее, вот пример кода:

public class SwingClass implements ActionListener{

    private JButton b;
    private JFrame f;

    public SwingClass(){
        f = new JFrame();
        f.setVisible(true);
        f.setSize(500, 500);
        b = new JButton("click");
        b.addActionListener(this);
        b.setSize(50, 50);
        f.add(b);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        Object source = e.getSource();
        if (source.equals(b)) {
            jButton2ActionPerformed();
        }
    }

    private void jButton2ActionPerformed() {
        JFileChooser chooser = new JFileChooser();
        chooser.showOpenDialog(null);
        File f = chooser.getSelectedFile();
        String fileName = f.getAbsolutePath();
        try {
            Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + fileName);
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(null, "Error");
        }
    }
}

С уважением;)

...