java - 如何使用此类中的公共(public)变量和方法?

标签 java swing methods jpanel awt

以下代码创建了 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

我应该如何在 MainFormWithPanel 类中实现 InventoryItemPanel 类的 setLabel 方法?

最佳答案

尝试修改行:

    add(panel);

MainFormWithPanel 中:

    add(panel.setLabel(cars.get(i).getYear(), cars.get(i).getMake(), 
       cars.get(i).getModel(),cars.get(i).getMiles(), cars.get(i).getPrice()));

关于java - 如何使用此类中的公共(public)变量和方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50442006/

相关文章:

java - 如何将 Swing TreeNode 转换为 Apache Tobago TreePath?

java - 在运行时查看方法调用 java jar 文件

java - Log4j-2.6.2 基本配置器未配置日志记录级别

java - Spring 自定义过滤器在发送回客户端之前过滤响应

java - 当我使用 Windows Builder Swing 设计器时,无法在 NetBeans 中编辑 java 源代码(旧方式)

go - 具有结构体的结构体指针的接口(interface)的函数赋值显示不同的值

java - Grails Spring Security 2.0 带参数的闭包

java - hibernate native 查询变量

java - 文件实用程序搜索实现

具有两组标签的 Java JSlider