Открытие нового кадра на основе выбора JComboBox - PullRequest
0 голосов
/ 23 октября 2011

Я новичок в Java.Я делаю проект на JavaSwing в колледже.

Мне нужна такая функциональность, как когда я выбираю элемент в JComboBox, он должен отображать новый фрейм AlwaysOnTop с меткой с именем выбранного элемента в этом фрейме и когда я выбираюзатем другой элемент должен обновлять только метку в ранее созданном фрейме.

Here is my code:
import java.awt.CardLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;

import Swing_Package.ToolbarFrame2;


public class JComboBoxExample extends JPanel{
        JComboBox cards;

        public JComboBoxExample(){
            String[] items = {"Item 1", "Item 2", "Item 3"};
            cards = new JComboBox(items);

            ActionListener listener = new ActionListener() {

                @Override
                public void actionPerformed(ActionEvent e) {
                    // TODO Auto-generated method stub
                        cards = (JComboBox)e.getSource();
                        System.out.println(cards.getSelectedItem()+" ");
                    }
            };



            add(cards);
            cards.addActionListener(listener);
        }

        public static void createAndShowGUI(){
            JFrame frame = new JFrame("ComboBox Demo");
            frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);

            JComboBoxExample content = new JComboBoxExample();
            content.setOpaque(true);
            frame.setContentPane(content);

            frame.pack();
            frame.setVisible(true);

        }

    public static void main(String[] args){
        javax.swing.SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                createAndShowGUI();
            }
        });
    }
}

Таким образом, вместо отображения выбранного элемента на консоли он должен отображаться в новом фрейме с соответствующим выбором.

1 Ответ

2 голосов
/ 23 октября 2011

1) слишком сложно создать AlwaysOnTop frame с помощью JFrame , вам нужно искать JDialog с ModalityType или setModal (Boolean )

2) добавить ItemListener (всегда вызывает дважды SELECTED и DESELECTED события) к JComboBox вместо ActionListener

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