java - 显示 30px 高的 JPanel,然后用 Minecraft 填充其余空间

标签 java swing minecraft gridbaglayout thread-sleep

我正在尝试制作一个顶部带有 30px JPanel 的 JFrame,然后在下面添加 Minecraft Applet,两者都需要自动调整大小,我正在尝试使用 GridBagLayout 来实现这一点,到目前为止我已经:

public void start(Applet mcApplet, String user, String session) throws MalformedURLException {
    JLabel label = new JLabel();
    Thread animation = new Thread();
    Dimension size = new Dimension(900, 540);

            JPanel basic = new JPanel(new GridBagLayout());
            basic.setPreferredSize(size);
            GridBagConstraints c = new GridBagConstraints();

            // ADD MINEBOOK MENU
            JLabel menu = new JLabel(new ImageIcon(new URL("http://modpacks.minebook.co.uk/images/menu.png")));

    if(!animationname.equalsIgnoreCase("empty")) {
        try {
            animation.start();
            label = new JLabel(new ImageIcon(animationname));
            label.setBounds(0, 0, size.width, size.height);
            fixSize(size);
            getContentPane().setBackground(Color.black);
            add(label);
            animation.sleep(3000);
            animation.stop();
        } catch (Exception e) {
            label.add(label);
        } finally {
            remove(label);
        }
    }

    try {
                appletWrap = new Launcher(mcApplet, new URL("http://www.minecraft.net/game"));
    } catch (MalformedURLException ignored) { }
    appletWrap.setParameter("username", user);
    appletWrap.setParameter("sessionid", session);
    appletWrap.setParameter("stand-alone", "true");
    mcApplet.setStub(appletWrap);
            mcApplet.setPreferredSize(size);

            c.fill = GridBagConstraints.HORIZONTAL;
            c.gridx = 0;
            c.gridy = 0;
            c.ipady = 30;
            basic.add(menu, c);

            c.fill = GridBagConstraints.BOTH;
            c.gridx = 0;
            c.gridy = 1;
            c.ipady = 0;
            basic.add(appletWrap, c);

            add(basic);

            pack();
    validate();
    appletWrap.init();
    appletWrap.start();
    fixSize(size);
    setVisible(true);
}

最佳答案

我建议您使用BorderLayout ,并将 30 像素面板放置在NORTH 位置,而将 Minecraft 小程序放置在CENTER 位置。

关于java - 显示 30px 高的 JPanel,然后用 Minecraft 填充其余空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16503538/

相关文章:

java - 在java中使用正则表达式

java - 如何使用netbeans ide对jtable记录进行过滤

java - onCommand() 设置正确但根本没有执行

java - 使用Java反射,我可以访问私有(private)静态嵌套类类型的私有(private)字段吗?

java - 将按钮保持在边界内

java - Flex 文件上传在使用 JSP 的 struts 环境中不起作用

java - 如何将 JVM 参数 `-Dcom.ibm.mq.cfg.useIBMCipherMappings=false` 添加到 IBM MQ?

Java,如果勾选多个复选框?

java - JTextField 不接受超过 1 个输入

javascript - 使用 Minecraft 控制台和 Nodejs 进行正则表达式