Java GUI创建组件
-
21-08-2019 - |
题
我希望可以说是正确的术语,说GUI中的组件就像Jbutton,Jpanel,Jtextfield一样,所有这些都很好。
我想创建一个包含整数的文本字段。然后可以按下提交按钮,并基于输入的整数,在弹出窗口或其他任何内容中创建许多文本字段。
我不知道,有人可以让我朝着正确的方向启动吗?
我遇到的麻烦是,我不知道如何创建用于创建GUI组件的循环。我的意思是,如果我有循环并做类似的事情:
print("JTextField num1 = new JTextField()");
然后,在for循环中,当我想要许多时,它将仅创建1个文本字段。如何通常创建JTEXTFIELD的变量?
谢谢你的帮助...
解决方案
使用适当的LayoutManager(例如Gridlayout)来创建和添加您的TextFields。
for (i = 0; i < numberOfTextFields; i++) {
JTextField textField = new JTextField();
container.add(textField);
/* also store textField somewhere else. */
}
其他提示
尝试这样的事情:
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)
我将创建一个列表来存储文本字段,然后您可以通过索引将其恢复。然后,您可以拥有所需的任意数量。
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 );
不隶属于 StackOverflow