0

我正要开始开发一些 Java 应用程序,这样我可以更好地了解这种语言,对于我的第一个真正的项目,我想制作一个应用程序,当它加载时会给出两个不同的面板,变化 -日志(从 Tumblr 检索到的?)和另一个不那么宽的日志,其中包含登录表单或启动应用程序的按钮,一旦用户启动应用程序,它就会关闭启动器,然后为主应用程序打开 JFrame比如游戏。

我已经尝试过让我的JFrame和这样的工作,但没有取得太大的成功。W使这发生的最好方法是什么?

当前代码

import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Dimension;

import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Launcher extends Canvas {
private static final long serialVersionUID = 1L;
public static final int LAUNCHER_WIDTH = 350;
public static final int LAUNCHER_HEIGHT = 200;
public static final int LAUNCHER_SCALE = 3;
public static final String LAUNCHER_TITLE = "Launcher";

public static void main(String[] args) {
    Launcher l = new Launcher();

    JFrame f = new JFrame();

    JPanel c = new JPanel();
    JPanel u = new JPanel();
    JPanel s = new JPanel();    

    l.setPreferredSize(new Dimension(LAUNCHER_WIDTH * LAUNCHER_SCALE, LAUNCHER_HEIGHT * LAUNCHER_SCALE));
    l.setMinimumSize(new Dimension(LAUNCHER_WIDTH * LAUNCHER_SCALE, LAUNCHER_HEIGHT * LAUNCHER_SCALE));
    l.setMaximumSize(new Dimension(LAUNCHER_WIDTH * LAUNCHER_SCALE, LAUNCHER_HEIGHT * LAUNCHER_SCALE));

    c.setLayout(new BoxLayout(c, BoxLayout.X_AXIS));
    c.add(u);
    c.add(s);

    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setLayout(new BorderLayout());
    f.setTitle(LAUNCHER_TITLE);
    f.add(l, BorderLayout.CENTER);
    f.add(c);
    f.pack();
    f.setResizable(false);
    f.setLocationRelativeTo(null);
    f.setVisible(true);
}
}
4

1 回答 1

3

几个建议:

  • 因为您Launcher()不要Canvas按原样扩展java.awt
  • 使用JPanelorJFrame代替,因为swing它们将与您的其他挥杆组件更兼容
  • 一般来说,不要不必要地混合 swing 和 awt 组件
于 2013-06-30T19:45:35.823 回答