如何将 JLabel 传递给另一个 class

How to pass JLabel to another class

我试图通过将购买 class 中的一个简单字符串放入 getter 中来传递它,然后尝试从另一个名为 pconfirm 的 class 中检索它。然后尝试将该表单中的标签文本设置为传递的数量。

Purchase.java

private JLabel lblamnt;

public String amount() {
    String gtext = lblamnt.getText();
    return gtext;
}

Pconfirm.java

private JLabel lblgamnt;

public Pconfirm() {
    Purchase purchase = new Purchase();
    lblgamnt.setText("Test" + purchase.amount());
}

当我通过它时,它什么也没显示。

我假设你用 Purchase.amount() 调用它。

您需要有一个实际对象才能使用方法 amount()

在您的 Purchase class 构造函数中,希望您可以访问 JLabel 或像这样设置文本的能力

Purchase.java

public void setTextOfJLabel(String text)
{
    lblamnt.setText(text);
}

然后您可以在

中执行以下操作

Pconfirm.java

private JLabel lblgamnt;
private Purchase purchObjName;

public Pconfirm() {
    purchObjName = new Purchase();
    purchObjName.setTextOfJLabel("The Purchase JLabel text");
    lblgamnt.setText("Pconfirm JLabel text and " + purchObjName.amount());
}

除非您在调用 amount 之前明确设置文本,否则 JLabel 的文本将为空。您还可以做一些事情,其中​​每个 Purchase JLabel 文本都是相同的,直到用户使用我提供的方法进行更改,您可以像这样设置默认文本

Purchase.java

private final String defaultJLabelText = "Purchase Default Text"; 

public Purchase()
{
    lblamnt = new JLabel();
    lblamnt.setText(defaultJLabelText);
}