2012-03-21 42 views
8

¿Cómo puedo especificar la posición de un JOptionPane. ¿Alguien puede hacer una clase que extienda JOptionPane.showInputDialog que también tome una posición x, y?posición JOptionPane showInputDialog

+0

no creo que esto es posible. – Mob

+0

¿Por qué la posición predeterminada relativa al componente principal no es aceptable? –

+0

1, la cuestión añadido algo que yo sepa hoy :-) –

Respuesta

7

Puede utilizar JOptionPane's setLocation(...) método. O En lugar de utilizar JOptionPane puedes extiende una JDialog y especifique su ubicación en la pantalla.

Aquí es una muestra de trabajo código como aconsejó por @HovercraftFullOfEels, solo este ejemplo le ayudará a obtener la entrada del usuario como lo pidió para:

import javax.swing.*; 

public class OptionPaneLocation 
{ 
    private void createAndDisplayGUI() 
    {  
     JOptionPane optionPane = new JOptionPane("Its me" 
            , JOptionPane.PLAIN_MESSAGE 
            , JOptionPane.DEFAULT_OPTION 
            , null, null, "Please ENTER your NAME here"); 
     optionPane.setWantsInput(true);    
     JDialog dialog = optionPane.createDialog(null, "TEST"); 
     dialog.setLocation(10, 20); 
     dialog.setVisible(true); 
     System.out.println(optionPane.getInputValue()); 
    } 

    public static void main(String... args) 
    { 
     Runnable runnable = new Runnable() 
     { 
      public void run() 
      { 
       new OptionPaneLocation().createAndDisplayGUI(); 
      } 
     }; 
     SwingUtilities.invokeLater(runnable); 
    } 
} 
+0

¿No tiene el JDialog tiene nada en ella de forma predeterminada? –

+0

Sí, es cierto, pero puede dar una funcionalidad equivalente a 'JOptionPane' o bien puede usar' setLocation (...) 'método en la instancia de' JOptionPane' como se especifica en mi respuesta. –

+1

@Downvoter: Cuide compartir su sabiduría, sobre el tema, para el voto en baja. Apreciarán altamente tanto, para el aprendizaje de somethingy nuevo, si hay mal somethingy, en mi explicación :-) –

5

Un JOptionPane puede ser fácilmente convertido en un JDialog (mira el JOptionPane API y te mostrará cómo hacerlo con el ejemplo). Luego puede establecer la posición del JDialog creado.

por ejemplo, de la documentación:

JOptionPane pane = new JOptionPane(arguments); 
pane.set.Xxxx(...); // Configure 
JDialog dialog = pane.createDialog(parentComponent, title); 
dialog.setLocation(....); // added! 
dialog.setModal(....); // added! Do you want it modal or not? 
// .... 
dialog.setVisible(true); 
+0

1, ésta es una buena respuesta :-) –

+0

@GagandeepBali: gracias, y lo mismo. –

+0

+1, agradable como siempre. –

Cuestiones relacionadas