java - 以不同的方法设置对象

标签 java object methods jframe

您好,我需要有关此代码的帮助。
我真的需要帮助...

    package Window;
import java.awt.Color;
import javax.swing.*;
public class Window
{
    public static void build()
    {
        //Create Elements
        JFrame frame = new JFrame();
        JButton send = new JButton();
        JTextArea dialog = new JTextArea();
        JTextArea input = new JTextArea();
        JScrollPane scroll=new JScrollPane(
                dialog,
                JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                JScrollPane.HORIZONTAL_SCROLLBAR_NEVER
        );
        send.setLocation(505,520);
        send.setSize(80,20);
        send.setBackground(Color.green);
        send.setText("Send");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(590, 600);
        frame.setTitle("Bot");
        frame.setLayout(null);
        frame.setResizable(false);
        frame.setBackground(Color.green);
        dialog.setLocation(5, 5);
        dialog.setSize(575,510);
        input.setLocation(15, 520);
        input.setSize(490,25);
        frame.add(send);
        frame.add(dialog);
        frame.add(input);
        frame.add(scroll);
    }
    void show()
    {
        frame.setVisible(true);
    }
}

我希望能够通过单独的方法将框架设置为可见。
但找不到框架对象。

有什么办法可以解决这个问题吗?

最佳答案

您需要让 show() 方法知道要设置哪些内容可见。

现在,您仅为 build() 方法的范围定义 JFrame 变量(因此无法从其他方法直接访问它)。

如果这是您的 GUI 类,您可以将 JFrame 设为类变量。像这样:

public class Window {
JFrame frame = new JFrame();
.
.

或者您可以定义它并在 build() 方法中创建实际的 JFrame:

public class Window {
JFrame frame;

public static void build(){
 frame = new JFrame();
 .
 .

现在您将能够在 show() 方法中访问 frame 变量。例如,如果您想在不同的类方法中访问它,您只需将 frame 对象作为参数传递即可。像这样: objectOfDifferentClass.myMethod(frame); 此类中的方法定义为 myMethod(JFrame frame){...}

You can read more about variable scopes here.

关于java - 以不同的方法设置对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43943705/

相关文章:

c# - 事件和方法之间的区别

c# - 属性和方法的区别

java - 公历 : Jumping from tuesday to sunday

json - TypeScript 中用括号代替键的对象是什么意思?

Java对象类

javascript - 使用变量访问 JS 对象

java - 为什么 println 不显示 - Java

java - Eclipse 不会自动完成/自动编译?

java - 在 springboot 应用程序 java.lang.IllegalArgumentException : Not a managed type 中出现此错误

java - 在 JPA 存储库中使用查询是否是正确的做法?