Следующий код создает 12 панелей с меткой и кнопкой на каждой панели.
public MainFormWithPanel() {
InventoryFileReader reader = new InventoryFileReader();
ArrayList<Car> cars = reader.getAllCars();
setLayout(new GridLayout(0,4));//set rows to zero so it fills rows first
for(int i = 0; i < cars.size(); i++){
InventoryItemPanel panel = new InventoryItemPanel();
panel.setLabel(cars.get(i).getYear(), cars.get(i).getMake(),
cars.get(i).getModel(),cars.get(i).getMiles(), cars.get(i).getPrice());
add(panel);
}
pack();
initComponents();
}
Этот следующий класс содержит метод setLabel, который я использую выше, но он не возвращает значения, которые яЯ прохожу из машины.
public class InventoryItemPanel extends JPanel{
public int year;
public String make;
public String model;
public int miles;
public int price;
JLabel label = setLabel(year, make, model, miles, price);
Button button = new Button("View More Details");
public InventoryItemPanel(){
setLayout(new GridLayout(2,1));
add(label);
add(button);
}
public JLabel setLabel(int year, String make, String model, int miles, int price){
Locale locale = new Locale("en", "US");
NumberFormat formatter = NumberFormat.getCurrencyInstance(locale);
return new JLabel("<html>"+ year + " " + make +
" " + model + "<br> " + + miles
+ " miles" + "<br>" + formatter.format(price)+"</html>");
}
}
Выход для кода:
0 null null
0 miles
$0.00
Когда реальный результат должен быть:
2012 Toyota Corolla
70000 Miles
$12,000.00
Как ядолжен реализовать метод setLabel из класса InventoryItemPanel в классе MainFormWithPanel?