Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用多个包/类的Java Swing_Java_Swing - Fatal编程技术网

使用多个包/类的Java Swing

使用多个包/类的Java Swing,java,swing,Java,Swing,不久前,我在一个主类中编写了一段代码,效果很好。后来,我又在它的单一主菜单中添加了JPanel和JFrame,再次运行良好 现在我正在尝试分解代码并将它们移动到包中 这是我的主要任务 -(src/start/Main.java)- 这是主机 -(src/frames/MainFrame.java)- 这是LogoPanel -(src/frames/LogoPanel.java)- 正如我所说的LogoPanel.createLogoPanel();这就是问题所在。它不接受我的createLog

不久前,我在一个主类中编写了一段代码,效果很好。后来,我又在它的单一主菜单中添加了JPanelJFrame,再次运行良好

现在我正在尝试分解代码并将它们移动到包中

这是我的主要任务 -(src/start/Main.java)-

这是主机 -(src/frames/MainFrame.java)-

这是LogoPanel
-(src/frames/LogoPanel.java)-


正如我所说的LogoPanel.createLogoPanel();这就是问题所在。它不接受我的createLogoPanel(JFrame)?将其设置为null根本不会显示面板。不管怎样,我能做到吗

您的
createLogoPanel
采用
JFrame
类型参数

但我看不到您在实际调用该方法时传递参数

按照以下思路做一些事情:

    JFrame frame = MainFrame.createFrame();
    LogoPanel.createLogoPanel(frame);     

这个错误似乎表明对基本Java语法和概念缺乏理解。如果你能积累这方面的知识,将来会受益匪浅

它被称为方法参数或参数。我再次希望你考虑我的建议。
package frames;
import javax.swing.JFrame;
public class MainFrame {

    public static JFrame createFrame() {
        JFrame frame = new JFrame ("App");
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setResizable(false);
        frame.setBounds(140,140, 1000, 580);
        frame.setVisible(true);
        frame.setLayout(null);
        return frame;
    }

}
package frames;

import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class LogoPanel {

    public static JPanel createLogoPanel(JFrame frame) {
        JPanel logoPanel = new JPanel ();
        logoPanel.setVisible(true);
        logoPanel.setBounds(0, 0, 1000, 80);
        logoPanel.setBackground(Color.gray);
        logoPanel.setLayout(null);
        frame.add(logoPanel);
        return logoPanel;
    }

}
    JFrame frame = MainFrame.createFrame();
    LogoPanel.createLogoPanel(frame);