2016-10-13 5 views
0

ArrayList PantryNamesのすべての名前に対してJLabelを継続的に作成しようとしています。ここに私の現在のコードは次のとおりです。異なる名前のJLabelを動的に作成する方法

for(int i = 0; i < FoodApp.getPantryNames().size(); i++){ 
     JLabel lblNewLabel = new JLabel((String) FoodApp.getPantryNames().get(i)); 
     contentPane.add(lblNewLabel, BorderLayout.WEST); 
    } 

私はlblNewLabelは "成分" +(I + 1)に設定することにしたいです。例えば、最初の食物は原料1などとなります。さらに、contentPaneでは、lblNewLabelは成分+(i + 1)でなければならない。ありがとう!

+0

Javaの方法ではなく、動的に名前の付いた変数を作成しようとしています。変数名をあまりにも重要視しています。 Javaコードにはほとんど存在せず、オブジェクトへの参照**が重要です。詳細については、[この類似の質問](http://stackoverflow.com/questions/6729605/assigning-variables-with-dynamic-names-in-java)をご覧ください。 –

答えて

0

これはJavaで変数がどのように機能するかではなく、そのような変数名を動的に設定することはできません。代わりにList<JLabel>を使用します。

ArrayList<JLabel> labels = new ArrayList<JLabel>(); 
for(int i = 0; i < FoodApp.getPantryNames().size(); i++){ 
    JLabel temp = new JLabel((String) FoodApp.getPantryNames().get(i)); 
    labels.add(temp); 
    contentPane.add(temp, BorderLayout.WEST); 
} 

また、ラベルが必要なときはいつでもcontentPane.getComponents()に電話することができます。

関連する問題