在Java中将GUI链接到Main

时间:2015-04-14 18:56:29

标签: java swing class user-interface

我对Java和OOP非常陌生,我想从我的Main类调用我的GUI类,这将是我的程序的起点。

这应该很简单,但任何帮助都将不胜感激

GUIForm1代码:

import javax.swing.*;
import java.awt.*;

public class GUIForm1 {

private JPanel MainPanel;
private JPanel MenuPanel;
Private JPanel AnimationPanel;
private JButton greenTrail;
private JButton purpleTrail;
private JSeparator animationMenuDivider;
private JSlider rangeSlider;
//more components

public GUIForm1() {


   JFrame frame = new JFrame("GUIForm1");
    frame.setContentPane(new GUIForm1().MainPanel);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setExtendedState(Frame.MAXIMIZED_BOTH);
    frame.pack();
    frame.setVisible(true);

   }
}

主类代码:

public class ProjectileSim {

public static void main(String[] args){
    GUIForm1 gui = new GUIForm1();

}
}

3 个答案:

答案 0 :(得分:1)

你的代码很好。您对GUIForm类的主类实例化也是正确的。您遇到问题的原因在于:


 frame.setContentPane(new GUIForm1().MainPanel);

这是您在代码中的问题。您试图在类中调用类的构造函数来设置不存在的MainPanel。

如果您正在使用NetBeans(或任何IDE),只需将JPanel拖到您的GUI上就可以了,然后您可以将帧内容框架设置为(例如):


frame.setContentPane(myNewJPanel);

试一试。注释掉你设置内容框架的行,看看我的意思。

(顺便说一句,这就是你的评论:

//frame.setContentPane(new GUIForm1().MainPanel);

您只需在不想执行的行前插入2个正斜杠。

一切顺利。让我知道结果。

答案 1 :(得分:0)

添加文本Jfield或JButton或更改您觉得新的面板的颜色。 并且主要方法必须在java中,它应该存在于公共类中。

答案 2 :(得分:0)

你的问题非常普遍。我会建议你在开始时通过https://docs.oracle.com/javase/tutorial/uiswing/start/index.html

但是,为了获得任何可见的结果你应该做的是:

public GUIForm1() {
    JFrame frame = new JFrame("GUIForm1");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setExtendedState(Frame.MAXIMIZED_BOTH);
    frame.setVisible(true);
}

通常你应该初始化GUI对象(比如JButtons,JFrame等)然后将它们添加到内容窗格,然后将所有内容设置为可见。但是请仔细阅读教程,因为它们涵盖了所有基础知识。