gpt4 book ai didi

java - 从另一个 JPanel 更改一个变量的值时更新 JPanel 的标签

转载 作者:行者123 更新时间:2023-12-01 13:05:05 25 4
gpt4 key购买 nike

我是 Java 新手。

我开发了一个具有一些不同 JPanels 的应用程序(使用 BorderLayout,在本例中为 3 个面板)。

在面板 1 中,我有一个 JLabel 和一个与其值相关的变量(类)(方法 get);在面板 2 中,我更新了变量(方法集)的值,因为它是在第二个面板中执行操作时完成的。

如何更新面板 1 中 JLabel 的值?

我不知道在更新面板 2 中的值后如何触发事件或类似的事件,以及如何使面板 1 监听此更改。

让我再解释一下。我有一个带有两个 JPanel 的 JFrame,我从一个面板更新模型。模型更新后,其他 JPanel 中的 JLabel 也应更新:主要:JFrame

public class MainClass extends JFrame
{
public MainClass()
{
// JPanel 1
....
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400,300);
setLocationRelativeTo(null);
setTitle("Test");
setResizable(false);
setVisible(true);
// JPanel 1
this.add(west, BorderLayout.WEST);
// JPanel 2
this.add(board, BorderLayout.CENTER);
}

public static void main(String[] args)
{
// put your code here
new MainClass ();
}
}

J面板1

public class West extends JPanel
{
contFase = new Contador(titulo, valor);
JLabel lblTitulo;
...
lblTitulo.setText = contFase.getText();
this.add(lblTitulo);
...
}

JPanel 2

public class Board extends JPanel implements ActionListener
{
....
public void actionPerformed(ActionEvent e)
{
...
//Here Label of panel 1 should be updated with the model
contFase.setValor(contFase.getValor() + pacman.comerElemento(fase.getPacdots(), fase.getPowerPellets()));
...
}
}

最佳答案

我不太了解您的代码是什么样子,因为您没有显示任何代码,但这里是一个示例,说明如何在执行操作时编辑 JLabel (在本例中 - 按按钮)。面板上组件的布局并不重要,但我按照您的要求放置了 2 个面板。

public class ValueUpdate extends JFrame {

int x = 0;
final JLabel label = new JLabel(String.valueOf(x));

ValueUpdate() {

JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();

panel1.add(label);

JButton btn = new JButton("Increment");
btn.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

x++;
label.setText(String.valueOf(x));
}
});

panel2.add(btn);

getContentPane().add(panel1, BorderLayout.CENTER);
getContentPane().add(panel2, BorderLayout.PAGE_END);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
pack();
setVisible(true);
}

public static void main(String[] args) {

new ValueUpdate();
}
}

关于java - 从另一个 JPanel 更改一个变量的值时更新 JPanel 的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23330385/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com