如何创建一个发送信息并在发布时关闭的按钮?

时间:2012-02-14 01:55:06

标签: java swing

我没有使用GUI的经验,所以我只是在徘徊,疯狂地试图解决问题。我现在拥有的是当我按下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 个答案:

答案 0 :(得分:1)

我为您制作了一个演示程序,检查它是否符合您的要求。

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();
}
}
祝你好运,玩得开心。