java 动态页面

现在也写一个动态的界面,上面有不确定个数的 jTextField ,其个数是根据参数的个数确定的,生成界面的代码如下

[code="java"]
for (int j = 0; j<n; j++){

            JLabel jLabel = new JLabel();
            getContentPane().add(jLabel);
            jLabel.setText(identifier.get(j) + "(" + title.get(j)+ ")");
            jLabel.setBounds(26, 79 + j*48, 492, 15);
            final JTextField jTextField = new JTextField();
            getContentPane().add(jTextField);
            jTextField.setText("");

[/code]

界面的截图如下

[img]http://dl.iteye.com/upload/attachment/0068/4023/ad70f7a5-84e7-391e-89c7-a5dda9aae3e1.jpg[/img]

[img]http://dl.iteye.com/upload/attachment/0068/4025/5b236e57-4d2d-345b-acbf-63319b0b9ba2.jpg[/img]

现在的问题是我不确定如何去获取这些 jTextField 输入的内容,一直没有找到合适的方法。

2个回答

那个textfield的value是个什么东西,我看,关键是你这里的j,即identifier.get(j),比如:
[code]
private Map fields = new HashMap();
for( j=0;j<n;j++){
...
fields.put(j,jTextField);

}
[/code]
在其他地方就可以通过fields获取到这些JTextField。

简单点的用数组
for (int j = 0; j<n; j++){
JLabel jLabel = new JLabel();
改为
JLabel jLabelArray=new JLabel[n];
for (int j = 0; j<n; j++){
jLabelArray[j] = new JLabel();
这样就能使用下标访问了:jLabelArray[3]

或者使用map

for (int j = 0; j JLabel jLabel = new JLabel();
改为
Map jLabelMap = new HashMap;
for (int j = 0; j<n; j++){
JLabel jLabel = new JLabel();
jLabelMap.put(identifier.get(j),jLabel);
这样就能使用identifier访问了:jLabelMap.get("Tool");

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问