如何将JLabel传递给另一个类

时间:2018-01-17 23:43:15

标签: java jlabel getter

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

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()调用它。

1 个答案:

答案 0 :(得分:0)

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

在您的Purchase类构造函数中,您希望能够访问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());
}

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

<强> Purchase.java

private final String defaultJLabelText = "Purchase Default Text"; 

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