Come posso fare finestre di dialogo JOptionPane appaiono come un compito sulla barra delle applicazioni?

StackOverflow https://stackoverflow.com/questions/542844

Domanda

Modifica:

La domanda segue la regola orizzontale; la mia risposta lo precede.

Sulla base di aiuto da Oscar Reyes , ho realizzato questa soluzione:

import javax.swing.JOptionPane;
import javax.swing.JFrame;

public class MyApp extends JFrame {
    public static void main(String [] args) {
        new MyApp();
    }

    public MyApp() {
        super("MyApp");
        setUndecorated(true);
        setVisible(true);
        setLocationRelativeTo(null);
        String i = JOptionPane.showInputDialog(this, "Enter your name:", getTitle(), JOptionPane.QUESTION_MESSAGE);
        if(null != i) {
            JOptionPane.showInputDialog(this, "Your name is:", getTitle(), JOptionPane.INFORMATION_MESSAGE, null, null, i.concat(i));
        }
        dispose();
    }
}

Si noti visualizzo la mia uscita in un JOptionPane.showInputDialog anche. In questo modo l'uscita viene evidenziato in un campo di testo in modo che possa premere semplicemente CTRL + C per copiare l'uscita negli appunti di sistema e premere ESC per respingere il ricorso.


Ho creato una GUI banale per la mia applicazione banale. Mia applicazione richiede un singolo ingresso con un JOptionPane.showInputDialog, esegue un calcolo, e quindi visualizza una singola uscita con un JOptionPane.showMessageDialog. A volte passare a una finestra del browser massimizzato o qualcos'altro per copiare, e poi voglio tornare alla mia finestra JOptionPane incollare in.

Io voglio avere il mio dialogo JOptionPane presentarsi come un compito sulla barra delle applicazioni in modo da poter passare ad esso come quasi qualsiasi altro programma in esecuzione. Io preferisco la semplicità di JOptionPane, invece di dover creare un JFrame, un FlowLayout, un'icona, un JTextField, un JButton, un ActionListener, e così via, e così via.

  • Può JOptionPane presentarsi come un compito sulla barra delle applicazioni?
  • Se sì, come faccio a farlo di presentarsi?
  • In caso contrario, c'è qualcos'altro che è un one-liner come JOptionPane.show[whatever]dialog()?
È stato utile?

Soluzione

  • Può JOptionPane presentarsi come un compito sulla barra delle applicazioni?

No

  • In caso contrario, c'è qualcos'altro che è un one-liner come JOptionPane.show [qualunque cosa] finestra ()?

Non è esattamente uno di linea (ma alcuni extra di 6 linee: P)

Scommetto che si cam mettere tutto questo in un metodo utlity piuttosto semplice e chiami quando ne hai bisogno, con una singola chiamata.

Il seguente codice dovrebbe aggiungere una barra delle applicazioni per la vostra applicazione.

import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class OptionTest { 
    public static void main ( String [] args ) { 

        JFrame frame = new JFrame("My dialog asks....");

        frame.setUndecorated( true );
        frame.setVisible( true );
        frame.setLocationRelativeTo( null );


        String message = JOptionPane.showInputDialog(frame,
            "Would this be enough?.", 
            "My dialog asks....", 
            JOptionPane.INFORMATION_MESSAGE);

        System.out.println( "Got " + message );

        frame.dispose();
    }
}

A proposito di Windows Vista, posso passare al OptionPane usando Alt + Tab senza niente altro (anche se non posso vederlo nella barra delle applicazioni, come lei ha detto)

Altri suggerimenti

Questa domanda è dipendente dalla piattaforma. Sul mio sistema, Debian Linux con OpenBox, JOptionPanes mostrano sempre sulla barra delle applicazioni. Non posso impedire qualsiasi JDialog di apparire sulla barra delle applicazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top