0

我有一个关于 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 中的包含吗?你对我的想法有什么看法,它是正确的还是我错了?感谢帮助和讨论。

4

2 回答 2

0

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

于 2013-03-15T19:47:51.627 回答
0

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

于 2013-03-15T19:38:52.293 回答