我试图设计一个小游戏,并使用JInternalFrame来显示库存。不过,我遇到的问题是,当我最小化内部帧时,左下角的图标会自动隐藏在也添加到JDesktopPane的JPanel后面。当我向下拖动窗口(使窗口垂直变大)时,白色桌面在默认的灰色JPanel下面变得可见。此外,当我向下拖动时,内部框架的图标会显示出来。我试图张贴图片,但我是新来的网站,所以我不能:(。
我尝试过使用moveToFront()和toFront()方法,并尝试覆盖InternalFrameListener以对帧进行图标化,但没有任何效果。如果你认为我使用的是一个糟糕的设计,请告诉我——我只是一个学生,我没有太多的常识。
这是我的密码
public class GameTester extends JFrame {
private JDesktopPane pane;
private Inventory i; //class that extends JInternalFrame
public static void main(String[] args) {
GameTester frame = new GameTester();
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1280, 720);
}
public GameTester() {
setFocusable(true);
i = new Inventory("Inventory");
GamePanel g = new GamePanel();
g.setBounds(0, 0, 1280, 720);
pane = new JDesktopPane();
pane.add(i);
setContentPane(pane);
getContentPane().add(g);
}
}
尝试这样的事情怎么样:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JPanel;
public class GameStarter extends JFrame {
private JDesktopPane pane = new JDesktopPane();
private JInternalFrame i = new JInternalFrame();
private JPanel panel = new JPanel();
public static void main(String[] args) {
GameStarter frame = new GameStarter();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(1024,768);
frame.setVisible(true);
}
public GameStarter() {
setLayout(new BorderLayout());
i.setClosable(true);
i.setIconifiable(true);
i.setMaximizable(true);
i.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
i.setSize(320,240);
i.setVisible(true);
pane.setPreferredSize(new Dimension(1024,320));
pane.setBackground(Color.GRAY);
pane.add(i);
panel.setBackground(Color.YELLOW);
add(pane,BorderLayout.SOUTH);
add(panel,BorderLayout.CENTER);
}
}
我个人的观点是,在JDesktopPane
上添加JPanel
的想法是不好的。
问题内容: 有什么办法以编程方式最小化JInternalFrame? 问题答案: “图标化或取消图标化此内部框架…”
我想添加一个图像到一个JPanel中,JPanel在JInternalFrame中,JInternalFrame有一个父,JDesktopPane。 我尝试使用另一个类从路径添加图像,然后,
我有四个内部框架和三个按钮在里面。当我点击最大化按钮,最大化,但它重叠所有的框架。但我的观点是,它应该显示最小化的框架。请找到下面的代码
问题内容: 是否可以在JDialog中添加最大化/最小化按钮?如果不是,那么我们可以将这些按钮添加到JPanel吗? 我有一个JPanel,并且在该面板内部有一个JDialog。我想添加一个最小化/最大化按钮,以便当单击该按钮时,JDialog会根据JPanel调整JDialog下的组件。就像当我单击最大化时,jpanel应该被放大,并且该面板(JDialog)中的组件也被放大,反之亦然,以最小化
我有一个JInternalFrame,它可以图标化,去图标化,关闭等。当单击按钮时,将打开此JInternalFrame。但是如果框架已经打开并被图标化,并且用户再次单击按钮,我不希望框架再次打开。所以我想知道如何让一个图标化的框架去图标化(所以基本上,当用户再次单击按钮时,它只是去图标化框架)。 我搜索了这个,找到了你可以做的JFrames: 但对于内部框架,这是不存在的。有人知道我能做些什么来
我真的对此感到困惑。我在做“微旅行”游戏。这是手机游戏,但我是为电脑制作的。我有一个扩展JPanel的背景类,它只绘制一个从0开始的矩形,并且有屏幕的大小(我的游戏是全屏)。我有一个主菜单类,它也扩展了JPanel。我想在那里添加主菜单的所有内容。然后,我将所有内容添加到扩展JFrame的GameFrame类中。我有一个main类,它只是调用GameFrame类。下面是我的代码:背景类: Main