从主窗口中的另一个包中打开JFrame

利亚姆·德·哈斯(Liam de Haas)

我有2个包,每个包都包含一个单独的MyFrame类,该类扩展了JFrame。我有第三个包,其中包含MyFrame类,然后扩展了JFrame。

我想在按下相应按钮时显示“主”程序包JFrame中其他程序包的JFrame。

我该怎么办?

这就是我现在所拥有的:公共类MyFrame扩展JFrame实现ActionListener {

private JButton voorraadbeheer, klantenbinding, werkplaats, facturatie,
        parkeergarage;
private JPanel mainMenu;
private JDPanel mainWindow;

public MyFrame() {
    Dimension button = new Dimension(100, 100);

    setLayout(new BorderLayout());

    voorraadbeheer = new JButton("Voorraadbeheer");
    klantenbinding = new JButton("klantenbinding");
    werkplaats = new JButton("Werkplaats");
    facturatie = new JButton("Facturatie");
    parkeergarage = new JButton("Parkeergarage");

    voorraadbeheer.setPreferredSize(button);
    klantenbinding.setPreferredSize(button);
    werkplaats.setPreferredSize(button);
    facturatie.setPreferredSize(button);
    parkeergarage.setPreferredSize(button);

    voorraadbeheer.addActionListener(this);
    klantenbinding.addActionListener(this);
    werkplaats.addActionListener(this);
    facturatie.addActionListener(this);
    parkeergarage.addActionListener(this);

    mainMenu = new JPanel();
    mainMenu.setPreferredSize(new Dimension(120, 600));
    mainMenu.setLayout(new FlowLayout());

    mainMenu.add(voorraadbeheer);
    mainMenu.add(klantenbinding);
    mainMenu.add(werkplaats);
    mainMenu.add(facturatie);
    mainMenu.add(parkeergarage);

    add(mainMenu, BorderLayout.EAST);

    mainWindow = new JPanel();
    mainWindow.setVisible(true);
    add(mainWindow);

    setSize(1024, 600);
    setVisible(true);
    setResizable(false);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e) {
    Object eventSource = e.getSource();

    if (eventSource == klantenbinding) {
        try {
            klantenbinding.MyFrame klantenbindingFrame = new klantenbinding.MyFrame();
            mainWindow.add(klantenbindingFrame);
        } catch (ParseException exc) {
        }
    }

}

}

充满鳗鱼的气垫船

如果您只是尝试显示另一个窗口,而不是将其添加到当前的GUI,该怎么办?

if (eventSource == klantenbinding) {
    try {
        klantenbinding.MyFrame klantenbindingFrame = new klantenbinding.MyFrame();
        // mainWindow.add(klantenbindingFrame);
        klantenbindingFrame.setVisible(true);
    } catch (ParseException e) {
      e.printStackTrace();  // never ignore exceptions
    }
}

说了这么多,我认为您在制作面向JFrame的类时犯了一个常见的初学者Swing错误。正如您所发现的,这使得代码非常不灵活。最好使代码更适合制作JPanels,因为它们可以放置在其他JFrames,其他JPanels,JApplets,JDialogs中,并与CardLayouts交换,等等。


编辑
可能适合您的合并方法是获取另一个JFrame的contentPane并将其插入:

if (eventSource == klantenbinding) {
    try {
        klantenbinding.MyFrame klantenbindingFrame = new klantenbinding.MyFrame();
        Component contentPane = klantenbindingFrame.getContentPane();
        mainWindow.add(contentPane);
        mainWindow.revalidate();
        mainWindow.repaint();
    } catch (ParseException e) {
      e.printStackTrace();  // never ignore exceptions
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在主窗口中从另一个包中打开JFrame

来自分类Dev

在一个窗口中打开多个链接,在另一个窗口中打开另一个链接

来自分类Dev

在另一个窗口中引用另一个打开的工作簿的方法是什么?

来自分类Dev

Javafx使用按钮在另一个窗口中打开另一个fxml

来自分类Dev

python-tkinter:在另一个窗口中打开另一个图像?

来自分类Dev

如何通过单击按钮从另一个xaml窗口中打开一个xaml窗口?

来自分类Dev

Emacs在当前窗口中打开另一个Shell

来自分类Dev

如何在Acumatica的另一个窗口中打开通用查询?

来自分类Dev

我可以在另一个窗口中获取打开的uidoc的背景文档吗?

来自分类Dev

在Rails应用程序的另一个窗口中打开的社交网站链接

来自分类Dev

在 macOS 上的另一个窗口中打开小部件

来自分类Dev

打开另一个 JFrame 时 JFrame 卡住

来自分类Dev

Flink流:在一个窗口中,在另一个窗口中查找状态

来自分类Dev

在另一个窗口中显示QProcess输出

来自分类Dev

如何在不打开腻子工艺的情况下在另一个窗口中打开

来自分类Dev

在另一个窗口中通过另一个窗口中的代码访问进度栏

来自分类Dev

打开另一个窗口后关闭窗口?

来自分类Dev

无法在tkinter python中的另一个窗口中访问列表

来自分类Dev

在另一个窗口中显示数据网格行中的链接表

来自分类Dev

在tkinter中,如何访问在另一个窗口中创建的变量?

来自分类Dev

像在另一个打开的终端窗口中一样执行命令

来自分类Dev

将一个窗口放到另一个窗口中

来自分类Dev

Swift:从另一个弹出窗口中显示一个弹出窗口

来自分类Dev

使用另一个窗口在一个窗口中填充文本框

来自分类Dev

Kivy:从另一个弹出窗口中关闭一个弹出窗口

来自分类Dev

如何关闭另一个类的主窗口?

来自分类Dev

关闭弹出窗口,然后打开另一个与打开另一个弹出窗口的同时打开另一个弹出窗口

来自分类Dev

从textarea中获取一个值,然后将其粘贴到另一个窗口中?

来自分类Dev

Java:如何从不在同一文件中但在同一包中的另一个Jframe打开一个Jframe;

Related 相关文章

  1. 1

    在主窗口中从另一个包中打开JFrame

  2. 2

    在一个窗口中打开多个链接,在另一个窗口中打开另一个链接

  3. 3

    在另一个窗口中引用另一个打开的工作簿的方法是什么?

  4. 4

    Javafx使用按钮在另一个窗口中打开另一个fxml

  5. 5

    python-tkinter:在另一个窗口中打开另一个图像?

  6. 6

    如何通过单击按钮从另一个xaml窗口中打开一个xaml窗口?

  7. 7

    Emacs在当前窗口中打开另一个Shell

  8. 8

    如何在Acumatica的另一个窗口中打开通用查询?

  9. 9

    我可以在另一个窗口中获取打开的uidoc的背景文档吗?

  10. 10

    在Rails应用程序的另一个窗口中打开的社交网站链接

  11. 11

    在 macOS 上的另一个窗口中打开小部件

  12. 12

    打开另一个 JFrame 时 JFrame 卡住

  13. 13

    Flink流:在一个窗口中,在另一个窗口中查找状态

  14. 14

    在另一个窗口中显示QProcess输出

  15. 15

    如何在不打开腻子工艺的情况下在另一个窗口中打开

  16. 16

    在另一个窗口中通过另一个窗口中的代码访问进度栏

  17. 17

    打开另一个窗口后关闭窗口?

  18. 18

    无法在tkinter python中的另一个窗口中访问列表

  19. 19

    在另一个窗口中显示数据网格行中的链接表

  20. 20

    在tkinter中,如何访问在另一个窗口中创建的变量?

  21. 21

    像在另一个打开的终端窗口中一样执行命令

  22. 22

    将一个窗口放到另一个窗口中

  23. 23

    Swift:从另一个弹出窗口中显示一个弹出窗口

  24. 24

    使用另一个窗口在一个窗口中填充文本框

  25. 25

    Kivy:从另一个弹出窗口中关闭一个弹出窗口

  26. 26

    如何关闭另一个类的主窗口?

  27. 27

    关闭弹出窗口,然后打开另一个与打开另一个弹出窗口的同时打开另一个弹出窗口

  28. 28

    从textarea中获取一个值,然后将其粘贴到另一个窗口中?

  29. 29

    Java:如何从不在同一文件中但在同一包中的另一个Jframe打开一个Jframe;

热门标签

归档