gpt4 book ai didi

java - 从外部类访问 JFrame 中的组件

转载 作者:行者123 更新时间:2023-12-02 07:01:50 24 4
gpt4 key购买 nike

我在访问 JFrame 中的多个组件以使用其 setText("...") 方法时遇到问题。我的 main 是在一个单独的类中,因为实际程序有很多窗口需要同时管理。

public GameWindow() {

initialize();
gameFrame.setVisible(true);
}

private void initialize() {
gameFrame = new JFrame();

JTextPane gameTextPane = new JTextPane(); // text pane to contain all game text
gameTextPanel.add(gameTextPane);

这是我的主要内容:

public class GameMain {
public static GameWindow gW = new GameWindow();
//I have tried using the code below with various numbers, but the "setText()" method is never available
gW.getGameFrame().getContentPane().getComponent(x);
}

我正在尝试从单独的类设置此文本,但我无法访问这些组件。最终,最终的代码应该如下所示:

public static void main(String[] args) {

// make the GUI and initilize
changeTheText();
}

public static void changeTheText() {
[CODE TO ACCESS TEXTFIELD].setText("Hello World");
}

我尝试了许多不同的方法,但我并不真正理解它们中的任何一个,并且它们仍然不允许我访问我需要的方法。

最佳答案

JTextPane 的声明移出 initialize 方法,使其成为参数,以便您可以随时从类中访问它。要使其可以从另一个类访问,您可以将其公开或添加一个 set 方法。像这样:

public class GameWindow {
private JTextPane gameTextPane;
...
private void initialize(){...}
...
public void setText(String s) {
gameTextPane.setText(s);
}
}

要更改主类中的文本:

gW.setText("This is a cool text");

关于java - 从外部类访问 JFrame 中的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16565483/

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