2008-12-15 64 views
2

我希望在GUI中说组件是类似于JButton,JPanel,JTextField,这些都是好东西,这是正确的。Java GUI创建组件

我想创建一个带整数的文本字段。然后可以按下一个提交按钮,并根据输入的整数,在弹出窗口中创建许多文本框或其他内容。

我不知道,有人能让我开始正确的方向吗?我不知道如何创建for循环来创建GUI组件。我的意思是,如果我有一个for循环,并做一些事情,如:

print("JTextField num1 = new JTextField()"); 

然后在for循环中时,我想许多人来说,只会造成1个文本字段。我如何一般创建JTextFields的变量?

感谢您的帮助......

回答

6

使用适当的LayoutManager(例如GridLayout)来创建和添加文本字段。

for (i = 0; i < numberOfTextFields; i++) { 
    JTextField textField = new JTextField(); 
    container.add(textField); 
    /* also store textField somewhere else. */ 
} 
+0

的for(int i = 0; .... << >> – Devoted 2008-12-15 21:25:49

0

我将创建一个列表存储文本字段,然后你可以通过索引让他们回来。然后,您可以根据需要获得尽可能多的字段。

List fields = new ArrayList(); 

// Create as many elements as you need 
for (int i = 0; i < numberOfElements; i++){ 
    JTextField field = new JTextField(); 
    // Add the fields to some panel so they are shown in the screen. 
    // I assume that the component is called parent panel 
    parentPanel.add(field); 

    // Store the component in the list so you can retrieve it later 
    fields.add(field); 
} 

// ... 

// When you want to retrieve a particular one: 

JTextField field = (JTextField)fields.get(indexToRetrieve); 
1

尝试是这样的:

List<JTextField> nums = new ArrayList<JTextField>(); 
JTextField tempField; 

for (int i = 0; i < 10; i++) { 
    tempField = new JTextField(); 
    jPanel1.add(tempField); // Assuming all JTextFields are on a JPanel 
    nums.add(tempField); 
} 

不要忘记设置正确的布局管理器的容器。 (JPANEL1在这种情况下)