2015-06-03 4 views
-1

Я ищу один слой, который порождает окно и позволяет мне выбрать (графически, например, с помощью combobox) один из нескольких вариантов.простое диалоговое окно java для выбора опции

я могу создать MessageBox с помощью следующего кода, но это не позволяет взаимодействие:

JOptionPane.showMessageDialog(null, "read this", "title", JOptionPane.WARNING_MESSAGE); 

диалоговое окно должно выглядеть (несколько), как этот Tk виджет: http://i.stack.imgur.com/jLk9j.png

и предлагают подпись как

// return null or the index in the array 
Integer letUserChooseIndex(String[] options) 

но также может принимать Collection<Object> или что-то подобное.

Какой здесь самый простой вариант?

+0

* "Что это самый простой вариант здесь ? »* Он называется: [исследование] (https://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html#input). – Tom

ответ

0

JOptionPane имеет функциональность иметь выпадающий встроенный в этом от here:.

import java.awt.BorderLayout; 
import java.awt.Component; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JOptionPane; 

public class MainClass { 
    public static void main(String args[]) { 
    JFrame f = new JFrame("JOptionPane Sample"); 
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    JButton button = new JButton("Ask"); 
    ActionListener actionListener = new ActionListener() { 
     public void actionPerformed(ActionEvent actionEvent) { 
     Component source = (Component) actionEvent.getSource(); 
     Object response = JOptionPane.showInputDialog(source, 
      "Choose One?", "JOptionPane Sample", 
      JOptionPane.QUESTION_MESSAGE, null, new String[] { "A", "B", "C" }, 
      "B"); 
     System.out.println("Response: " + response); 
     } 
    }; 
    button.addActionListener(actionListener); 
    f.add(button, BorderLayout.CENTER); 
    f.setSize(300, 200); 
    f.setVisible(true); 
    } 
} 

Приведенный выше код использует следующий метод:

public static Object showInputDialog(Component parentComponent, 
        Object message, 
        String title, 
        int messageType, 
        Icon icon, 
        Object[] selectionValues, 
        Object initialSelectionValue) 
+0

Спасибо, конкретная перегрузка 'showInputDialog', которую вы упомянули, - это то, что я искал. – initminit

Смежные вопросы