【发布时间】:2015-06-27 06:00:54
【问题描述】:
我将subPanel 动态添加到jPanel1(使用jTextField 和jButton)。部分代码是从there借来的。
我正在尝试从jPanel1 的组件中获取文本,但无法成功。
已编辑:
这是一个包含jTextField、+Button 和-Button 的子面板。
private class subPanel extends javax.swing.JPanel {
subPanel me;
public subPanel() {
super();
me = this;
JTextField myLabel = new JTextField(15);
add(myLabel);
JButton myButtonRemove = new JButton("-");
JButton myButtonAdd = new JButton("+");
add(myButtonRemove);
add(myButtonAdd);
这是AddButton的代码:
jPanel1.add(new subPanel());
pack();
我试图从jTextField 获取文本的code 不起作用:
Component[] children = jPanel1.getComponents();
for (int i=0;i<children.length;i++){
if (children[i] instanceof JTextField){
String text = ((JTextField)children[i]).getText();
System.out.println(text);
}
您的回复将不胜感激。
【问题讨论】:
-
您在 addActionPerformed 中创建了新的 JPanel,对吗?您是否尝试过将新的 JPanel 作为变量保留在 Main 类的上下文中并直接访问其成员?
-
@Oliver Schmidt:是的,我在 addActionPerformed 中创建了新的 JPanel,当我将新的 JPanel 声明为无法动态添加 jPanel 的变量时,我尝试了您的建议。
-
首先,在您的代码示例中从未调用方法
void addPanel()。不过,这应该是向jXTaskPane1添加控件的方法,对吧?其次,内部类private class addPanel没有为它扩展的JPanel 类增加更多的价值。相反,它让读者感到困惑:-) 第三,当我执行代码时,empty JPanels(或addPanels)被添加到jXTaskPane1。当然,您无法访问空 JPanel 上的任何控件,因为没有什么可访问的! :-) 您能否重写示例,使其符合您在问题中指出的内容? -
@Oliver Schmidt 我编辑了我的问题。
标签: java swing io netbeans-8