2013-05-12 26 views
5

Bunun, düğmelerin ve adlarının miktarını belirleyebileceği "showConfirmDialog" gibi diğer iletişim penceresi türlerinde mümkün olduğunu gördüm; "showInputDialog" kullanırken aynı işlevsellik elde edilebilir mi? API'da bu tür bir şey göremedim. Belki de onu özledim, ama herhangi bir yardım takdir edilir.JOptionPane showInputDialog'da (ve CANCEL düğmesi yokken) yalnızca OK düğmesine sahip olmanın bir yolu var mı?

+1

Evet bu mümkün. ShowOptionDialog ile seçenek panelini daha özgürce özelleştirebilirsiniz. Düzenle: @Maroun cevabında size gösterir. Cevabına 1+. –

cevap

14

here bulundu:

enter image description here

String[] options = {"OK"}; 
JPanel panel = new JPanel(); 
JLabel lbl = new JLabel("Enter Your name: "); 
JTextField txt = new JTextField(10); 
panel.add(lbl); 
panel.add(txt); 
int selectedOption = JOptionPane.showOptionDialog(null, panel, "The Title", JOptionPane.NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options , options[0]); 

if(selectedOption == 0) 
{ 
    String text = txt.getText(); 
    // ... 
} 
+1

Yazım için teşekkürler! bu çok açık. –

+1

+1 örnek için :) – Maroun

+0

"Adınız" BTW olmalı;) –

4

JOptionPane.showInputDialog(), kullanıcı "OK" (Tamam) 'ı tıklattığında girilen diziyi döndürür ve aksi halde null değerini döndürür. this Bkz:

İade: Kullanıcının giriş veya boş anlam kullanıcı showInputDialog()

Ancak kullanarak

Sen bunu yapamaz girişi iptal sen JOptionPane#showOptionDialog() kullanabilirsiniz:

Object[] buttons = {"OK"}; 
int res = JOptionPane.showOptionDialog(yourFrame, 
        "YourMessage","YourTitle", 
        JOptionPane...., 
        JOptionPane..., null, buttons , buttons[0]); 

Yorumlar üzerinde @HovercraftFullOfEels belirtildiği gibi, JTextField ekleyebilirsiniz diyaloğa ve bunu başar.

+1

Evet, bu şekilde çok esnektir. 1+ –

+0

Java için yeni biriyim, bu yöntemi kullanarak kullanıcı girişini nasıl alabilirim? –

+0

Hayır, showOptionDialog', showInputDialog'dan farklı bir şey! –

1

Dene:

JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green."); 

Ben sadece JOptionPane.showOptionDialog() bir mesaj olarak özel bir Jpanel eklemek

İlgili konular