Comment puis-je faire des boîtes de dialogue JOptionPane apparaissent comme une tâche sur la barre des tâches?

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

Question

Edit:

La question suit la règle horizontale; ma propre réponse précède.

Basé sur l'aide de Oscar Reyes , je conçu cette solution:

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();
    }
}

Remarquez que je manifesterai ma sortie dans un JOptionPane.showInputDialog aussi. De cette façon, la sortie est mise en évidence dans un champ de texte donc je peux simplement appuyer sur CTRL + C pour copier la sortie vers le presse-papiers du système et les presser ESC de rejeter la demande.


J'ai créé une interface graphique trivial pour mon application trivial. Mon application invite pour une seule entrée d'un JOptionPane.showInputDialog, effectue un calcul, puis affiche une sortie unique avec un JOptionPane.showMessageDialog. Je passe parfois à une fenêtre de navigateur maximisée ou quelque chose d'autre à copier, et que vous souhaitez revenir à ma boîte de dialogue JOptionPane à coller dans.

Je veux avoir mon dialogue JOptionPane apparaissent comme une tâche sur la barre des tâches pour que je puisse passer à presque comme tout autre programme en cours d'exécution. Je préfère la simplicité de JOptionPane, plutôt que de devoir créer un JFrame, un FlowLayout, une icône, un JTextField, un JButton, un ActionListener, et ainsi de suite, et ainsi de suite.

  • Peut-JOptionPane apparaître comme une tâche sur la barre des tâches?
  • Si oui, comment puis-je à afficher?
  • Dans le cas contraire, il n'y a rien d'autre qui est un one-liner comme JOptionPane.show[whatever]dialog()?
Était-ce utile?

La solution

  • Peut-JOptionPane apparaître comme une tâche sur la barre des tâches?

Non

  • Dans le cas contraire, il n'y a rien d'autre qui est une boîte de dialogue () en une ligne comme JOptionPane.show [tout]?

Pas exactement une doublure (mais quelques 6 lignes supplémentaires: P)

Je parie que vous cam mettre tout cela dans une méthode utlity assez facile et appelez chaque fois que vous en avez besoin avec un seul appel.

Le code suivant ajouter une barre des tâches pour votre application.

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();
    }
}

Soit dit en passant dans Windows Vista, je peux passer à l'OptionPane en utilisant Alt + Tab sans rien d'autre (même si je ne peux pas le voir dans la barre des tâches que vous avez dit)

Autres conseils

Cette question est dépendant de la plateforme. Sur mon système, Debian Linux avec OpenBox, JOptionPanes montrent toujours la barre des tâches. Je ne peux pas empêcher tout JDialog d'apparaître sur la barre des tâches.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top