Класс SampleFiveA расширяет JPanel. Это содержит текстовые поля, один под другим, каждый из которых имеет метку слева. Все текстовые поля будут иметь одинаковую ширину и располагаться напротив правой границы панели. SampleFiveA имеет только один конструктор, который принимает следующие три параметра:Использование ArrayList в JPanel
имен ArrayList, значения ArrayList, Int COLS
Я до сих пор создал экран пароля образца имени пользователя в GUI, но теперь у меня есть проблема реализации ArrayList в JPanel один для имени пользователя, а другой для пароля. Вид застрял там часами, теперь не может найти подходящий пример для этого. Ниже приведен код, который я прокомментировал, что мне нужно сделать, используя 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);
};
};
Важно понимать: вы не можете создать ArrayLists 'names',' values', или Int 'cols'. Они передаются в ваш конструктор, а затем вы назначаете их собственным переменным объекта. Таким образом, ваша подпись конструктора является 'public SampleFiveA (имена ArrayList, значения ArrayList, int cols)'. Я не знаю точно, что вы должны здесь достичь, но я подозреваю, что это будет включать чтение/запись из этих предоставленных списков. – Doug
Знаете ли вы, как перебирать списки? Если нет, прочитайте о [для циклов] (http://www.java-tips.org/java-se-tips/java.lang/the-enhanced-for-loop.html). – Jeremy