java - 使用 JLabels 填充数组

标签 java arrays user-interface jlabel

我的 JLabels 和 JTextFields 中有这段代码。我想知道 - 为了节省空间 - 我是否可以以某种方式将 JLabels 和/或 JTextFields 添加到数组中?我有比下面更多的 JLabels 和 JTextFields。

     JLabel lblVundet = new JLabel("Won");
     lblVundet.setBounds(5, 10, 50, 16);
     mainframe.add(lblVundet);

     JLabel lblUafgjort = new JLabel("Draw");
     lblUafgjort.setBounds(5, 55, 60, 16);
     mainframe.add(lblUafgjort);

     JLabel lblTabt = new JLabel("Lost");
     lblTabt.setBounds(5, 100, 60, 16);
     mainframe.add(lblTabt);


     txtFieldWon = new JTextField();
     txtFieldWon.setBounds(168, 4, 134, 28);
     mainframe.add(txtFieldWon);
     txtFieldWon.setColumns(10);

     txtFieldDraw = new JTextField();
     txtFieldDraw.setBounds(168, 49, 134, 28);
     mainframe.add(txtFieldDraw);
     txtFieldDraw.setColumns(10);

     txtFieldLost = new JTextField();
     txtFieldLost.setBounds(168, 94, 134, 28);
     mainframe.add(txtFieldLost);
     txtFieldLost.setColumns(10);

最佳答案

您可以只创建 for 循环并减少代码中的冗余。如果您将下面的代码分成两个不同的方法并调用它们以减少重复,那就太好了。

如果您确实需要(尽管我认为没有任何需要),您可以将标签/字段存储到数组中,因为您有大量的标签和字段。

String labels[] = {"Won", "Draw", "Lost"};
JLabel label;
for (int i =0; i<labels.length; i++) {
    label = new JLabel(labels[i]);
    label.setBounds(5, 10 + (i * 45), 50, 16);
    mainframe.add(label);
}

JTextField jTextField;
int txtFieldCount = 3;
for (int i=0 ;i<txtFieldCount; i++) {
   jTextField = new JTextField();
   jTextField.setBounds(168, 4 + (i * 45), 134, 28);
   mainframe.add(jTextField);
   jTextField.setColumns(10);
}

关于java - 使用 JLabels 填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27745677/

相关文章:

arrays - 如何将 $not 逻辑查询运算符与其他比较查询运算符结合使用以获得更具体的 yield ?

java - selectOneMenu 上的 required 是否只接受 true?

java - 使用 getSystemClipboard().setContents(..) 时出现 HeadLessException

java - 检查一个整数数组中是否有两个相同的元素

java - 调用方法打印int

python - 如何将askopenfilename()返回值作为参数传递给内置python函数open

python - 当我使用 QtGui.QIntValidator() 时,它将文本的最大长度设置为 10 个整数?

java - 如何从java中的列表中找到最大值和最小值

java - 从终端编译 java 源代码的最简单方法?

Linux GUI : gnuplot, bash 脚本,octave