2010-06-09 3 views

cevap

39

En azından showInputDialog() veya showMessageDialog() gibi JOptionPane yöntemlerinden birini dikkate almalısınız.

Ek: JOptionPane kullanım seçeneği, kullanılan bileşenlerin sayısı yerine, modalitenin uygunluğu hakkında daha fazla bilgi verir. Ayrıca bkz. How to Make Dialogs.

Ek: @camickr tarafından yapılan bir yorumda belirtildiği gibi, odağı here numaralı Dialog Focus numaralı makalede açıklanan yaklaşımı kullanarak belirli bir bileşene ayarlayabilirsiniz.

image

package gui; 

import java.awt.EventQueue; 
import java.awt.GridLayout; 
import javax.swing.*; 

/** @see https://stackoverflow.com/a/3002830/230513 */ 
class JOptionPaneTest { 

    private static void display() { 
     String[] items = {"One", "Two", "Three", "Four", "Five"}; 
     JComboBox<String> combo = new JComboBox<>(items); 
     JTextField field1 = new JTextField("1234.56"); 
     JTextField field2 = new JTextField("9876.54"); 
     JPanel panel = new JPanel(new GridLayout(0, 1)); 
     panel.add(combo); 
     panel.add(new JLabel("Field 1:")); 
     panel.add(field1); 
     panel.add(new JLabel("Field 2:")); 
     panel.add(field2); 
     int result = JOptionPane.showConfirmDialog(null, panel, "Test", 
      JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); 
     if (result == JOptionPane.OK_OPTION) { 
      System.out.println(combo.getSelectedItem() 
       + " " + field1.getText() 
       + " " + field2.getText()); 
     } else { 
      System.out.println("Cancelled"); 
     } 
    } 

    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       display(); 
      } 
     }); 
    } 
} 
+0

cevap ve örnek arasındaki başlangıç ​​karışıklık için Maalesef. – trashgod

+0

Girişi nasıl alabilirim? – nunos

+0

Yukarıda detaylandırdım ve eğiticiye bir bağlantı ekledim. – trashgod

İlgili konular