我試圖按照標題說的去做。將大量不同的擺動物體添加到面板/框架的高效方法。 (Java)
我有一個有效的方法通過在陣列中存儲它們,將它們添加使用for循環,像這樣幾個發佈同揮杆對象的一個框架:
JLabel[] contrllabels= new JLabel[8];
contrllabels[0] = new JLabel("SCF Type: ");
contrllabels[1] = new JLabel("Units: ");
contrllabels[2] = new JLabel("Spherical Harmonics: ");
contrllabels[3] = new JLabel("Molecular Charge: ");
contrllabels[4] = new JLabel("PP: ");
contrllabels[5] = new JLabel("DFT Type: ");
contrllabels[6] = new JLabel("Max Iterations: ");
contrllabels[7] = new JLabel("Mult: ");
for(int i = 0;i<contrllabels.length;i++){
c.gridy = i;
frame.add(contrllabels[i],c);
}
但是,如果有什麼幾種不同類型的搖擺物體?我有幾個組合框和文本框,我想以類似的方式添加到框架中。我使用gridbaglayout,所以如果我不使用for循環,最終會產生大量不必要的代碼,因爲每次我想要添加不同的對象時都會給出約束新的值。
有沒有這樣的事情作爲指向這些不同的對象,然後我可以迭代添加到框架的引用數組?像
JTextField tf = new JTextField(5);
JComboBox cb = new JComboBox("example");
Swing[] array = {tf,cb}
for(int i = 0;i<array.length;i++){
c.gridy = i;
frame.add(array[i],c);
}
我知道這樣的數組不存在,但有沒有實現這樣的事情的某種方式?這將大大減少我的代碼中的行數,並減少混淆。
謝謝
like'JComponent'? – Tedil 2012-01-13 15:46:41
至少,你可以有對象數組。我建議你使用ArrayList。您可能會發現自己需要在將來移除一個物體,並且將會轉移所有元素......浪費大量時間! ArrayList由一個數組支持,稍微額外的開銷在我們現在運行的機器上毫無意義......甚至是手機!你應該考慮閱讀java.util.ArrayList代碼來看看它是如何運作的,你會更好地感受這一切。 – vinnybad 2012-01-13 16:58:06