Se abbiamo diversi eventi impostati nel nostro JFrame, potrebbe valere la pena organizzarli meglio rispetto a quello che gli IDE fanno di default.

Oggi vediamo uno dei vari modi, usando un ActionListener personalizzato.

Supponiamo di avere due voci nel nostro menu, ai quali vogliamo agganciare determinati eventi.

Oggi vediamo un semplice modo per impostare delle scorciatoie da tastiera in Java.

Ne imposteremo due:

  • una legata alla combinazione CTRL+Q per chiudere il programma
  • una legata al tasto ENTER

Andremo a impostare tutto nel costruttore del JFrame.

Quando lanciamo un comando da un nostro programma in Java (Swing), di default non ne vediamo l'output.

E il motivo è che, generalmente, viene mandato sullo standard output, che non è la interfaccia scritta in Java.

In molti casi, però, potrebbe essere importante catturare l'output, soprattutto per vedere a che punto siamo con la sua esecuzione.

Oggi vediamo proprio questo: come visualizzare l'output di un comando su una JTextArea.

Il programma che lanceremo sarà youtube-dl, programma da riga di comando per scaricare la musica in formato MP3 da Youtube.

In questo articolo, abbiamo visto come creare dei JDialog in ambiente multi-thread con SwingWorker.

Oggi vediamo un esempio simile, ma usando la Reflection.

Il risultato finale è lo stesso, ma il codice è più pulito.

Partiamo dall'evento nel nostro JFrame:

btnConnect.addActionListener((ActionEvent e) -> {
    final GenericDialog loading = new GenericDialog(this, "", "Loading...");
    BackgroundOperation bo = new BackgroundOperation("com_mattepuffo_book.FormBook", "createConnection", loading);
    bo.execute();
    loading.setVisible(true);
});

I JDialog sono componenti usati principalmente per avvertire l'utente di qualcosa.

Lanciare un JDialog, di per se, non è complicato; ma creare una classe che estende JDialog per lanciarlo senza riscrivire la ruota è meglio.

E comunque, in generale, creando una classe apposita possiamo personalizzarlo.