2012-11-11 30 views
11

Làm cách nào để thêm văn bản tùy chỉnh vào các nút của JOptionPane.showInputDialog?Java: Nút tùy chỉnh trong showInputDialog

Tôi biết về câu hỏi này JOptionPane showInputDialog with custom buttons, nhưng nó không trả lời câu hỏi được hỏi, nó chỉ tham chiếu đến JavaDocs, không trả lời câu hỏi đó.

Mã So Far:
Object[] options1 = {"Try This Number", "Choose A Random Number", "Quit"};

JOptionPane.showOptionDialog(null, 
       "Enter a number between 0 and 10000", 
       "Enter a Number", 
       JOptionPane.YES_NO_CANCEL_OPTION, 
       JOptionPane.PLAIN_MESSAGE, 
       null, 
       options1, 
       null); 

How I want it to look

Tôi muốn thêm một trường văn bản này.

+1

Ông có thể mở rộng về yêu cầu của bạn nhiều hơn một chút. Ngoài ra, những gì bạn có cho đến nay? – Whymarrh

+0

Tham khảo javadocs (trong trường hợp này ít nhất) là câu trả lời đúng. Không cần phải viết ở đây những gì người khác đã viết. – vainolo

Trả lời

18

Bạn có thể sử dụng thành phần tùy chỉnh thay vì nhắn chuỗi, ví dụ:

import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 

public class TestDialog { 

    public static void main(String[] args) { 
     Object[] options1 = { "Try This Number", "Choose A Random Number", 
       "Quit" }; 

     JPanel panel = new JPanel(); 
     panel.add(new JLabel("Enter number between 0 and 1000")); 
     JTextField textField = new JTextField(10); 
     panel.add(textField); 

     int result = JOptionPane.showOptionDialog(null, panel, "Enter a Number", 
       JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE, 
       null, options1, null); 
     if (result == JOptionPane.YES_OPTION){ 
      JOptionPane.showMessageDialog(null, textField.getText()); 
     } 
    } 
} 

enter image description here

+0

và làm thế nào để bạn nhận được giá trị của đầu vào? – ZuluDeltaNiner

+0

@ZuluDeltaNiner từ trường văn bản nằm trong bảng điều khiển. Vui lòng xem chỉnh sửa cuối cùng. – tenorsax

+0

Nếu đó chỉ là lời nhắc và không có trường văn bản, làm cách nào để có kết quả? –

8

Hãy xem How to Make Dialogs: Customizing Button Text.

Dưới đây là một ví dụ đưa ra:

enter image description here

Object[] options = {"Yes, please", 
        "No, thanks", 
        "No eggs, no ham!"}; 
int n = JOptionPane.showOptionDialog(frame,//parent container of JOptionPane 
    "Would you like some green eggs to go " 
    + "with that ham?", 
    "A Silly Question", 
    JOptionPane.YES_NO_CANCEL_OPTION, 
    JOptionPane.QUESTION_MESSAGE, 
    null,//do not use a custom Icon 
    options,//the titles of buttons 
    options[2]);//default button title