2016-08-07 6 views
-1

У меня есть Jframe и JButton на ней, которая является кнопкой «Обзор». Мне нужно, чтобы кнопка была автоматически нажата, когда я запускаю программу и выполняю ее функцию, то есть откройте браузер для выбор файлов. Пожалуйста, помогите. Вот мой код:Нажмите кнопку автоматически в java

package MyPackage; 
public class MyFrame extends javax.swing.JFrame { 
    public MyFrame() { 
    initComponents(); 
    } 
    private void BrowseActionPerformed(java.awt.event.ActionEvent evt) {          

    JFileChooser fileChooser = new JFileChooser(); 
    int returnValue = fileChooser.showOpenDialog(null); 
    if (returnValue == JFileChooser.APPROVE_OPTION) { 
    File selectedFile = fileChooser.getSelectedFile(); 
     try { 
      java.awt.Desktop.getDesktop().open(selectedFile);//<-- here 
     } catch (IOException ex) { 
      Logger.getLogger(MyFrame.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

} 

public static void main(String args[]) { 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
       new MyFrame().setVisible(true); 
     } 
    }); 
} 
+0

Указанное требование довольно нелогично. Если это логическое действие для запуска при запуске, нет необходимости в кнопке! Но предположим, что у пользователя может быть причина также нажать кнопку позже. Переопределите метод 'private void BrowseActionPerformed (java.awt.event.ActionEvent evt)' просто 'private void BrowseActionPerformed()', а затем измените 'initComponents();' на 'initComponents(); BrowseActionPerformed(); 'Общие советы: 1) Чтобы лучше помочь, опубликуйте [MCVE] или [Short, Self Contained, Correct Example] (http://www.sscce.org/). .. –

+0

.. 2) Пожалуйста, изучите общую номенклатуру Java (соглашения об именах - например, 'EveryWordUpperCaseClass',' firstWordLowerCaseMethod() ',' firstWordLowerCaseAttribute', если это не 'UPPER_CASE_CONSTANT') и использовать ее последовательно. –

ответ

1

Чтобы программно нажмите использования кнопки JButton:

button.doClick() 
+0

Хотя этот ответ технически корректен, * большой * ответ будет начинаться с * «Не делай этого, а вместо этого». * См. [Является ли «Не делать этого» действительный ответ?] (Http: // meta.stackexchange.com/questions/8891/is-dont-do-it-a-valid-answer) для более подробной информации. –

+0

Спасибо за комментарий. Я не вижу, как «Не делай этого, а вместо этого ...» имеет отношение к этому вопросу. Вопрос не предлагал способ сделать это. Отправьте пример ответа. – c0der

+0

* «Вопрос не предлагал способ сделать это». * Если вопросник предложил альтернативу или вместо этого сформулировал вопрос более общим способом, например. «Лучший способ получить действие, вызванное при запуске?», он (не делай этого) вряд ли будет иметь значение! Это часто является примером проблемы [XY] (http://meta.stackexchange.com/q/66377). Что касается * me * ответа, я сделал комментарий и жду, когда OP придет к возможности, что они идут по этому пути неправильно, вместо того, чтобы спешить с ответом. –

1

записи Browse.doClick(); у вашего конструктора.

+0

Хотя этот ответ технически корректен, * большой * ответ будет начинаться с * «Не делайте этого, а вместо этого». * См. [Является ли «Не делать этого» действительный ответ?] (Http: // meta.stackexchange.com/questions/8891/is-dont-do-it-a-valid-answer) для более подробной информации. –

Смежные вопросы