gpt4 book ai didi

java - 在 JPanel 中使用 ArrayList

转载 作者:行者123 更新时间:2023-12-01 19:17:26 25 4
gpt4 key购买 nike

类 SampleFiveA 扩展了 JPanel。它包含文本字段,一个在另一个下面,每个文本字段的左侧都有一个标签。所有文本字段的宽度都相同,并且位于面板的右边框上。 SampleFiveA 只有一个构造函数,它接受以下三个参数:

ArrayList 名称,数组列表值,整数列

到目前为止,我在 GUI 中创建了示例用户名密码屏幕,但现在我在 JPanel 中实现 ArrayList 时遇到问题,一个用于用户名,另一个用于密码。有点卡在那里几个小时了,现在找不到合适的例子来做到这一点。下面是我注释了我需要使用 ArrayList 完成的事情的代码。

public class SampleFiveA extends JPanel {


ArrayList<String> names = new ArrayList<String>(); //the text for the labels
ArrayList<String> values = new ArrayList<String>(); // the initial contents of the text fields
int col ; //the number of columns used to set the width of each textfield


public SampleFiveA()
{
JPanel p = new JPanel();
p.setLayout(new GridLayout(2,2));

JLabel lab1 = new JLabel("User Name", JLabel.LEFT);
p.add(lab1 = new JLabel("User Name"));
JTextField txt1 = new JTextField("User Name", JTextField.RIGHT);
p.add(txt1= new JTextField());



JLabel lab2 = new JLabel("Password ", JLabel.LEFT);
p.add(lab2 = new JLabel("Password"));
JPasswordField txt2 = new JPasswordField("*****",JPasswordField.RIGHT );
p.add(txt2 = new JPasswordField());



// names.add(lab1,lab2);// Not right but I want to put the label text to this arrayList
// values.add(txt1,txt2);//


add(p);
};



public static void main(String[] args)
{


JFrame frame = new JFrame();
frame.getContentPane().add(new SampleFiveA());

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200,200);
frame.setVisible(true);


};
};

最佳答案

你可以使用

names.add(txt1.getText());
values.add(txt2.getText());

但也许你应该考虑更好的数据结构,例如一个 HashMap 和

hashmap.put(txt1.getText(),txt2.getText())

(您应该根据某些事件执行此操作,例如用户按下按钮,而不是在构造函数中,否则该值将是您之前设置的值)

关于java - 在 JPanel 中使用 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5995188/

25 4 0