Как сделать функцию, как JOptionPane.showMessageDialog (xxx, "xxx")? - PullRequest
1 голос
/ 03 февраля 2011

Потребуются целые выходные с напряженными попытками создать функцию, которая отображает диалог и может возвращать значение после нажатия кнопки ОК (например, JOptionPane.showMessageDialog (xxx, "xxx"))? Может ли кто-нибудь помочь мне с написанием кода?

Заранее спасибо

Макар

Ответы [ 3 ]

4 голосов
/ 03 февраля 2011

Используйте JOptionPane.showInputDialog ().

Другие альтернативы - передать элемент управления GUI в JOptionPane.showMessageDialog () и запросить состояние элемента управления после его закрытия,или используйте JDialog.

Если вы потратите более 15 минут на то, чтобы заставить JOptionPane работать точно так, как требуется, это хороший признак того, что JOptionPane не является классом для задания.

2 голосов
/ 03 февраля 2011

Здесь у вас есть тривиальный подход.Это класс, а не функция.Если вы хотите создать его с двумя параметрами, создайте дополнительный конструктор с двумя необходимыми параметрами.

Здесь вы можете взглянуть на настоящего Маккоя ...

public class MyOwnJDialog extends javax.swing.JDialog {
    private String theMessage;

    public MyOwnJDialog(java.awt.Frame parent, boolean modal, String theMessage) {
        super(parent, modal);
        initComponents();
        this.theMessage = theMessage;
        jLabel1.setText(theMessage);
        setVisible(true);
    }


    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        getContentPane().add(jLabel1, java.awt.BorderLayout.CENTER);

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton1);

        getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);
        pack();
    }

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        dispose();
    }

    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;

}
1 голос
/ 03 февраля 2011
  1. Создайте, какие классы вам понадобятся, и как вы хотите, чтобы GUI выглядел как
  2. Создайте каркас классов и методов и начните заполнять детали.
  3. Создайтеметод, который может собрать это вместе и вернуть результат.

Некоторые полезные элементы:

...