提问人:Peddler 提问时间:3/11/2012 最后编辑:Peddler 更新时间:3/12/2012 访问量:106
在应用程序中添加到 JPanel
Adding to JPanel in application
问:
当单击特定按钮时,我希望将另一组按钮添加到面板中,但是在我这样做的那一刻,我可以根据需要多次添加它们,我需要这只能一次。执行此操作的最佳方法是在 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++;
}
}
答:
1赞
vextorspace
3/11/2012
#1
如果我理解正确,我会使用一个标志 alreadyAdded,该标志以 false 开头,在添加控件后设置为 true,然后不允许它在此之后添加。
3赞
Hovercraft Full Of Eels
3/11/2012
#2
也许与其添加和删除 JButtons,不如在代码开始时添加一次按钮,只是不要让它们可见,直到你需要它们,或者最好将它们全部放在一个不可见的 JPanel 上,然后在需要时显示。只是不要忘记在包含按钮及其面板的容器上打电话。revalidate()
repaint()
评论
0赞
Peddler
3/11/2012
我喜欢添加一次并在需要时设置可见的想法。我认为,将它们保持在一段时间循环中是坏主意/不是好习惯?
0赞
Hovercraft Full Of Eels
3/11/2012
@Peddler:我不知道“让他们处于一段时间循环中”是一个坏主意,因为我不太清楚你的意思。
0赞
Peddler
3/11/2012
对不起,措辞不当。按钮的添加是在 while 循环中进行的,一旦单击按钮一次,就无法访问该循环。
0赞
Hovercraft Full Of Eels
3/11/2012
@Peddler:我仍然不确定你的意思。如果您仍然需要这方面的帮助,您可能需要编辑您的问题并显示您的确切意思。
1赞
Hovercraft Full Of Eels
3/11/2012
啊,我明白你的意思了。这可能行得通,但在我看来,这很容易搞砸。最好将组件作为类字段,在应用程序中只创建一次,然后添加它们或使它们可见。
下一个:CardLayout 问题
评论