Как сделать кнопку, которая отправляет информацию и закрывается при выпуске? - PullRequest
0 голосов
/ 14 февраля 2012

У меня нет опыта работы с графическим интерфейсом, поэтому я просто перебираюсь и схожу с ума, пытаясь разобраться. Теперь, когда я нажимаю кнопку «I», появляется другое окно со списком с именами и кнопкой, которая закрывает окно и возвращает выбранный вариант в главное окно. Я не могу заставить окно стать невидимым или как отправить информацию обратно в мое исходное окно (library_GUI)

        JComboBox nameBox = new JComboBox(names.toArray());
    contentPane.add(nameBox, BorderLayout.NORTH);
    String nam = (String)nameBox.getSelectedItem();
    JButton checkOutButton = new JButton("Check Out");
    checkOutButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            JFrame.setVisible(false);
        }

1 Ответ

1 голос
/ 14 февраля 2012

Я сделал для вас демо, проверьте, соответствует ли оно вашим требованиям.

public class JDialogDemo
{
    public JDialogDemo()
    {   
    JFrame mainWindow = new JFrame("mainWindow");
    mainWindow.setBounds(300, 300, 300, 300);
    mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    final JDialog dlg = new JDialog(mainWindow, true);
    dlg.setBounds(300, 300, 200, 100);
    final JComboBox box = new JComboBox(new String[]{"A", "B"});
    JButton okBtn = new JButton("Ok");
    okBtn.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e)
        {
            Object item = box.getSelectedItem();
            System.out.println(item);
            dlg.setVisible(false);
        }

    });
    dlg.getContentPane().setLayout(new BorderLayout());
    dlg.getContentPane().add(box, BorderLayout.NORTH);
    dlg.getContentPane().add(okBtn, BorderLayout.CENTER);

    JButton popupBtn = new JButton("Popup");
    popupBtn.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e)
        {
            dlg.setVisible(true);
        }

    });
    mainWindow.getContentPane().add(popupBtn, BorderLayout.NORTH);

    mainWindow.setVisible(true);
}

public static void main(String[] args)
{
    new JDialogDemo();
}
}

удачи, веселья.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...