類SampleFiveA擴展JPanel。這包含一個在另一個之下的文本字段,每個文本字段在左側都有一個標籤。所有文本框的寬度都是相同的,並且位於面板的右側邊框上。 SampleFiveA具有接受以下三個參數只有一個構造函數:在JPanel中使用ArrayList
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'name','values'或int'cols'。它們被傳遞給你的構造函數,然後將它們分配給你的對象自己的變量。然後,您的構造函數的簽名是'public SampleFiveA(ArrayList names,ArrayList values,int cols)'。我不知道你在這裏需要達到什麼目的,但我懷疑它會涉及到從這些提供的列表中讀/寫。 – Doug 2011-05-13 16:54:17
你知道如何迭代你的列表嗎?如果沒有,請閱讀[for loops](http://www.java-tips.org/java-se-tips/java.lang/the-enhanced-for-loop.html)。 – Jeremy 2011-05-13 16:54:25