我需要这个代码的帮助。
我真的需要帮助...
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);
}
}
我希望能够从单独的方法设置框架可见。
但它无法找到框架对象
有没有办法解决这个问题?
答案 0 :(得分:1)
您需要让show()
方法知道要设置的内容。
目前,您只为JFrame
方法的范围定义build()
变量(因此无法直接从其他方法访问)。
如果这是您的GUI类,您可以使JFrame
成为类变量。像这样:
public class Window {
JFrame frame = new JFrame();
.
.
或者您可以定义它并在JFrame
方法中创建实际的build()
:
public class Window {
JFrame frame;
public static void build(){
frame = new JFrame();
.
.
现在,您将能够访问frame
方法中的show()
变量。例如,如果要以不同的类方法访问它,则可以将frame
对象作为参数传递。像这样:objectOfDifferentClass.myMethod(frame);
将此类中的方法定义为myMethod(JFrame frame){...}