8
votes

Comment définir l'emplacement de "JOPTIONPANE.SHOWMESSAGEDIALOG"

Je veux faire joptionpane.showmessagedialog code> message apparaît

  • n'importe quel endroit à l'écran. LI>
  • par rapport à jframe. (pas au centre du jframe) li> ul>

    par exemple, cela affichera le message au centre du jframe fourni comme argument iframe code> p> xxx pré>

    et cela affichera Le message au centre de l'écran n'est irrérélateur vers n'importe quel JFRAME. P>

    JOptionPane.showMessageDialog(null, "Your message.");
    
    • Ce que je veux, c'est définir l'emplacement du message n'importe quel endroit où je veux p> li>

    • Ce que je veux, c'est de définir l'emplacement du message relatif au JFRAME (pas au centre du jframe) p> li> ul>

      Comment? p> p>


3 commentaires

Ma question est-elle illégale / invalide en termes de doctrine GUI ?! @Andrewthompson


Notez que JOPTIONPANE peut utiliser tout composant comme parent. Cela signifie que cela peut être relatice sur le facteur, n'importe quel composant à l'intérieur de celui-ci, n'importe quel composant n'importe quelle fenêtre in / toute fenêtre flottante (barre d'outils, jwindow , jdialog ) qui est sur -screen) ou bien sûr, null (centre d'écran).


Ce Le fil pourrait vous intéresser.


3 Réponses :


0
votes

Essayez ceci xxx


4 commentaires

"Essayez ceci" avez-vous vous l'essayer? Rien n'apparaît quand courir dans mon jre.


JOPTIONSANE est un jComponent non pas d'une boîte de dialogue ou d'une fenêtre.


@Andrewthompson Désolé Thompson, je n'ai pas essayé. Seulement vérifié ces 3 lignes.


@Neil Wightman je savais mais cela a ces méthodes. Peut-être que ma réponse est fausse.



6
votes
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;

public class CustomDialog extends JDialog {
    private JPanel myPanel = null;
    private JButton yesButton = null;
    private JButton noButton = null;

    public CustomDialog(JFrame frame, boolean modal, String myMessage) {
    super(frame, modal);
    myPanel = new JPanel();
    getContentPane().add(myPanel);
    myPanel.add(new JLabel(myMessage));
    yesButton = new JButton("Yes");
    myPanel.add(yesButton);
    noButton = new JButton("No");
    myPanel.add(noButton);
    pack();
    //setLocationRelativeTo(frame);
    setLocation(200, 200); // <--
    setVisible(true);
    }
}

3 commentaires

Ce n'est pas la réponse à la question.


@Uniqueorn je pense que c'est.


Ok c'est en fait un moyen de le faire. Mais vous n'avez pas besoin de créer une solution personnalisée, y compris des boutons Oui / Non. Créez simplement le JOPTIONPANE et placez-le sur une instance JDialog.



9
votes

Ce dont vous avez besoin est

    final JOptionPane pane = new JOptionPane("Hello");
    final JDialog d = pane.createDialog((JFrame)null, "Title");
    d.setLocation(10,10);
    d.setVisible(true);


1 commentaires

Vous pouvez utiliser d.setlocacementRelativeto (quelque part); la positionner par rapport à n'importe quel composant UI.