在 GUI 为 运行 时更改 JLabel
Changing a JLabel while GUI is running
我现在拥有的代码确实可以更改 JLabel,但问题是在第一次更改后,它只会添加到标签上,而不是像我预期的那样更改它。代码如下
public static void changeJLabel(JPanel panelName, JLabel JLabel, String newText)
{
panelName.remove(JLabel);
JLabel = new JLabel(newText);
panelName.add(JLabel);
panelName.validate();
panelName.repaint();
}
我在GUI中将其设置为一个按钮,结果如以下链接所示。在按下按钮之前:http://prntscr.com/64gnwl Hitting it once: http://prntscr.com/64gnzj Changed as expected. Hitting it many times: http://prntscr.com/64go2u 不符合预期。我认为在添加另一个之前不会删除 JLabel,但我不确定为什么。如果您需要我的全部代码,我也会添加。
JLabel.setText();
可以满足我的需求。我边学边学,以前在我的任何搜索中都没有见过这种方法。不知道我是怎么错过的,但这很好用。
public static void changeJLabel(JPanel panelName, JLabel JLabel, String newText)
{
JLabel.setText(newText);
panelName.validate();
panelName.repaint();
}
我现在拥有的代码确实可以更改 JLabel,但问题是在第一次更改后,它只会添加到标签上,而不是像我预期的那样更改它。代码如下
public static void changeJLabel(JPanel panelName, JLabel JLabel, String newText)
{
panelName.remove(JLabel);
JLabel = new JLabel(newText);
panelName.add(JLabel);
panelName.validate();
panelName.repaint();
}
我在GUI中将其设置为一个按钮,结果如以下链接所示。在按下按钮之前:http://prntscr.com/64gnwl Hitting it once: http://prntscr.com/64gnzj Changed as expected. Hitting it many times: http://prntscr.com/64go2u 不符合预期。我认为在添加另一个之前不会删除 JLabel,但我不确定为什么。如果您需要我的全部代码,我也会添加。
JLabel.setText();
可以满足我的需求。我边学边学,以前在我的任何搜索中都没有见过这种方法。不知道我是怎么错过的,但这很好用。
public static void changeJLabel(JPanel panelName, JLabel JLabel, String newText)
{
JLabel.setText(newText);
panelName.validate();
panelName.repaint();
}