Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 将方法添加到frame.Add()中_Java_Swing_Exception - Fatal编程技术网

Java 将方法添加到frame.Add()中

Java 将方法添加到frame.Add()中,java,swing,exception,Java,Swing,Exception,我想在frame.add()中加载方法mainWindow()。但是,我有一个例外: main窗口无法解析为类型,因为它不是来自类型组件 public class MainWindow { private static final Logger log = Logger.getLogger(MainWindow.class); public void mainWindow() { log.info("enter mainWindow method");

我想在
frame.add()中加载方法
mainWindow()
。但是,我有一个例外:

main窗口无法解析为类型
,因为它不是来自类型组件

public class MainWindow {

    private static final Logger log = Logger.getLogger(MainWindow.class);

    public void mainWindow() {

        log.info("enter mainWindow method");

        MigLayout layout = new MigLayout("fillx", "[right]rel[grow,fill]", "[]10[]");
        JPanel panel = new JPanel(layout);

        panel.add(new JLabel("Enter size:"),"");
        panel.add(new JTextField(""),"wrap");
        panel.add(new JLabel("Enter weight:"),"");
        panel.add(new JTextField(""),"");

    }

    public void createAndShowGUI() {

        log.info("create and show GUI");

        JFrame frame = new JFrame("FileChooserDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Add content to the window.
        frame.add(new mainWindow());

        //Display the window.
        frame.pack();
        frame.setVisible(true);


    }


}
是否有其他方法可以将
mainWindow()
方法添加到
frame.add()
,而不将其更改为组件

谢谢你的回答

变化:

public void mainWindow() {

    log.info("enter mainWindow method");

    MigLayout layout = new MigLayout("fillx", "[right]rel[grow,fill]", "[]10[]");
    JPanel panel = new JPanel(layout);

    panel.add(new JLabel("Enter size:"),"");
    panel.add(new JTextField(""),"wrap");
    panel.add(new JLabel("Enter weight:"),"");
    panel.add(new JTextField(""),"");

}
进入:

更改:

public void mainWindow() {

    log.info("enter mainWindow method");

    MigLayout layout = new MigLayout("fillx", "[right]rel[grow,fill]", "[]10[]");
    JPanel panel = new JPanel(layout);

    panel.add(new JLabel("Enter size:"),"");
    panel.add(new JTextField(""),"wrap");
    panel.add(new JLabel("Enter weight:"),"");
    panel.add(new JTextField(""),"");

}
进入:

更改:

public void mainWindow() {

    log.info("enter mainWindow method");

    MigLayout layout = new MigLayout("fillx", "[right]rel[grow,fill]", "[]10[]");
    JPanel panel = new JPanel(layout);

    panel.add(new JLabel("Enter size:"),"");
    panel.add(new JTextField(""),"wrap");
    panel.add(new JLabel("Enter weight:"),"");
    panel.add(new JTextField(""),"");

}
进入:

更改:

public void mainWindow() {

    log.info("enter mainWindow method");

    MigLayout layout = new MigLayout("fillx", "[right]rel[grow,fill]", "[]10[]");
    JPanel panel = new JPanel(layout);

    panel.add(new JLabel("Enter size:"),"");
    panel.add(new JTextField(""),"wrap");
    panel.add(new JLabel("Enter weight:"),"");
    panel.add(new JTextField(""),"");

}
进入:


不能在Java中添加或加载方法。这不是函数式语言。可能您需要等到java 8。java语言中没有“加载方法”这样的东西。您不能在java中添加或
load
methods。这不是函数式语言。可能您需要等到java 8。java语言中没有“加载方法”这样的东西。您不能在java中添加或
load
methods。这不是函数式语言。可能您需要等到java 8。java语言中没有“加载方法”这样的东西。您不能在java中添加或
load
methods。这不是函数式语言。可能您需要等到Java8。在java语言中没有“加载方法”这样的东西。Thx是您的答案。使用
JComponent
时,我有什么真正的优势吗?还是最好改变系统,改变gui的加载方式?我不知道你说的“gui的加载方式”是什么意思。通过我建议的更改,您的代码变成了相当标准的Swing代码。谢谢您的回答。使用
JComponent
时,我有什么真正的优势吗?还是最好改变系统,改变gui的加载方式?我不知道你说的“gui的加载方式”是什么意思。通过我建议的更改,您的代码变成了相当标准的Swing代码。谢谢您的回答。使用
JComponent
时,我有什么真正的优势吗?还是最好改变系统,改变gui的加载方式?我不知道你说的“gui的加载方式”是什么意思。通过我建议的更改,您的代码变成了相当标准的Swing代码。谢谢您的回答。使用
JComponent
时,我有什么真正的优势吗?还是最好改变系统,改变gui的加载方式?我不知道你说的“gui的加载方式”是什么意思。通过我建议的更改,您的代码将成为相当标准的Swing代码。