Добавление в JPanel в приложении - PullRequest
1 голос
/ 11 марта 2012

Когда нажимается определенная кнопка, я хочу, чтобы в Panel был добавлен другой набор кнопок, однако в тот момент, когда я это делаю, я могу добавлять их столько раз, сколько мне нужно, мне нужно, чтобы это было возможно только один раз , Будет ли лучший способ сделать это, установив добавление кнопок и полей в цикле while?

   if(e.getSource() == selectScript){

                while(scriptB < 1 ){
                imageID = new JTextField("INT");
                imageDescription = new JTextField("imgDescription");
                imagePath = new JTextField("imagePath");
                manageImageTab.add(imageID);
                manageImageTab.add(imageDescription);
                manageImageTab.add(imagePath);
                insertImage = new JButton("Add an Image");
                insertImage.addActionListener(new dbaccess());
                manageImageTab.add(insertImage);

                manageImageTab.revalidate();
                validate();
                scriptB++;

                }
}

Ответы [ 2 ]

3 голосов
/ 11 марта 2012

Возможно, вместо того, чтобы добавлять и удалять JButtons, вы можете добавить кнопки один раз в начале кода, просто не делайте их видимыми, пока они вам не понадобятся, или, возможно, лучше разместите их все на JPanel это не видно, а затем становится видимым при желании. Только не забудьте вызвать revalidate() и repaint() на контейнере, в котором находятся кнопки и их панель.

1 голос
/ 11 марта 2012

Если я вас правильно понимаю, я бы использовал флаг уже добавлен, который начинается с false, устанавливается на true после добавления элементов управления, а затем не позволяет добавлять его после этого.

...