Java 在JDesktopPane中添加一个类
我一直在寻找这个问题,但它不适合我 我所做的是,我有这样的目录Java 在JDesktopPane中添加一个类,java,swing,jdesktoppane,internal-class,Java,Swing,Jdesktoppane,Internal Class,我一直在寻找这个问题,但它不适合我 我所做的是,我有这样的目录 |-> Games (folder) |----> GamesCombined.java and classes |----> games (folder) |--------> pacman (folder) |------------> PacmanGame.java and classes Inside Games.java import java.awt.*; import javax.swi
|-> Games (folder)
|----> GamesCombined.java and classes
|----> games (folder)
|--------> pacman (folder)
|------------> PacmanGame.java and classes
Inside 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);
}
您的意思是添加?将PacmanGame.java添加为JInternalFrame。
PacmanGame.java
extendsJInternalFrame
?请阅读中的Swing教程中的部分以获得一个工作示例。作为对PacmanGame.java是否扩展JInternalFrame的答复,嗯,否。那么我应该更改它吗?从JFrame到JInternalFrame?是的,在不首次亮相的情况下进行更改。哦,这就是为什么!>我还需要学习很多东西。谢谢成功了。是的,大量的练习+阅读会让你学到东西,别担心,每一个方法都是从第一步开始;)