在java中的内容窗格中显示类

时间:2013-03-15 18:05:36

标签: java class pane

我有一个关于java的一般问题。因为我想创建StronaGlowna.java(类),我放置了所有按钮,复选框和其他我要在主类中显示的GUI组件。第一个问题是正确的方法,这是正确的吗?或者更好的方法来做这件事。我的代码看起来像这样:

import java.awt.CardLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class Main extends JFrame {

    private static final long serialVersionUID = -4575271483481196192L;

    Container pane;
    CardLayout layout;

    public Main() throws FileNotFoundException, IOException {

        layout = new CardLayout();
        setLayout(layout);

        pane = this.getContentPane();

        /*Page: Strona główna */
        JPanel newPanel = new JPanel();
        pane.add("New", newPanel);      
        JButton przycisk = new JButton("Przycisk");
        newPanel.add(przycisk);

...

在“pane.add(”New“,newPanel)中;”我想显示以下元素:

package aplikacja.glowna;

import javax.swing.JButton;
import javax.swing.JPanel;

public class StronaGlowna {

    public void StronaGlownaDisplay() {
        JPanel newPanel = new JPanel();
        JButton przycisk2 = new JButton("Przycisk");
        newPanel.add(przycisk2);
    }

}

我可以在main()中导入/显示所有类StronaGlowna,就像PHP中的include一样吗?你对我的想法有什么看法,这是正确的还是我错了?感谢您的帮助和讨论。

2 个答案:

答案 0 :(得分:0)

这听起来像Netbeans处理GUI的方式。您可以在http://netbeans.org/kb/docs/java/quickstart-gui.html中查看该文章,它可以帮助您了解GUI的工作原理,因为Netbeans可以为您生成代码。您始终可以导入类并创建对象以访问方法(通常是公共方法)。我认为它不像PHP中的包含。 PHP include喜欢直接包含源代码,但jave不是。

答案 1 :(得分:0)

首先 - 从不,从不,从不,在Main类中编码。从中调用一个方法,然后在另一个类中启动您的员工。当然,不要扩展它。而构造函数也不是一个好主意。所有这些都是不好的做法。现在,进入你的问题,我的建议是你让StronaGlowna扩展JPanel,然后通过公共构造函数获取它的实例,并使用该实例作为JScrollPane的构造函数的参数。这将使scrollPane充当“屏幕”,你可以在其中看到StronaGlowna的内容,这是我所理解的你所追求的。