java - 在 JDesktopPane 中添加一个类

标签 java swing jdesktoppane internal-class

我一直在寻找这个问题,但它对我不起作用。

我所做的是我有这样的目录

|-> Games (folder)
|----> GamesCombined.java and classes
|----> games (folder)
|--------> pacman (folder)
|------------> PacmanGame.java and classes

在 Games.java 中

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import games.pacman.*;

public class GamesCombined extends JFrame {
    private JDesktopPane dsktp = new JDesktopPane();
    private JMenuBar menuBar = new JMenuBar(); 
    private JMenu gamesmenu = new JMenu("Games");
    private JMenuItem play_pacman = new JMenuItem("Pacman"); 
    public GamesCombined() {
        super("Games");
        setLayout(null);
        Container c = getContentPane();
        add(dsktp);
        setJMenuBar(menuBar);
        menuBar.add(gamesmenu);
        gamesmenu.add(play_pacman);
        play_pacman.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                //I want to add PacmanGame.java as an InternalFrame of this DesktopPane.
            }   
        });
        int frameWidth = 800;
        int frameHeight = 850;
        setSize(frameWidth, frameHeight);
        setLocationRelativeTo(null);
        setResizable(false);
        setVisible(true);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}

这可能吗?或任何其他方式在 jdesktoppane 中添加外部类?

最佳答案

 setLayout(null);  // That's your problem

不要将布局设置为null,你为什么要这样做?删除此行并添加如下内部结构:

public void actionPerformed(ActionEvent ae) {
     PacmanGame obj = new PacmanGame();
     obj.setVisible(true);
     obj.setSize(....);//and so on
     dsktop.add(obj);
}   

关于java - 在 JDesktopPane 中添加一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18167244/

相关文章:

java - 将 JAR 依赖项加载到内存中

java - 如何将 JAVA Swing 中的时间转换为货币

java - 在 Java Swing 中旋转 JLabel 和 ImageIcon

java - 图像未按计划显示,我正在尝试使用 JLabel 更改 JFrame 中的图像

java - 使用 JInternalFrame 在客户端/服务器应用程序中创建聊天窗口

java - JDesktopPane 的背景设置

java - 如何每隔 2 小时自动启动 Tanuki Software Wrapper

java - 将 url 编码数据转换为 json

java - JDesktopPane 边界 - JInternalFrame 未填满整个桌面

java - Vertica Jdbc 驱动程序未抛出 - SQL 状态 : 22001 when ERROR: value too long for type