从下一个类向JFrame添加组件

时间:2015-05-07 18:14:57

标签: java swing jframe

我遇到了问题。我有主要课程

public static void main(String[] args) {
    HomePanel game = new HomePanel();
    game.setVisible(true);
    game.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

主页面板游戏:

  public HomePanel() {

    setSize(1280, 720);
    setLayout(null);
    setTitle("MILLION");

    bNewGame = new JButton("New Game");
    bNewGame.setFont(new Font("Tahoma", Font.BOLD, 15));
    bNewGame.setBounds(550, 420, 180, 50);
    bNewGame.setToolTipText("Start a new adventure!");
    bNewGame.addActionListener(this);

使用动作监听器:

  public void actionPerformed(ActionEvent action) {
    source = action.getSource();

    if (source == bNewGame) {
        new Test().setVisible(true);

和很多其他人。当我启动这个窗口时,点击“新游戏”后我想打开组件 - 我的意思是添加Test类的按钮和动作监听器,但我想在同一个窗口中进行,而不打开新的(它确实发生了。)

public class Test extends JFrame{
private JButton bCredits;

public Test() {
    setSize(1280, 720);
    setLayout(null);
    setTitle("TEST_TEST");

    bCredits = new JButton("Credits");
    bCredits.setBounds(550, 540, 180, 50);
    add(bCredits);
}

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我的建议是使用名为JFrame的{​​{1}}或其他内容。然后在GameFrame中添加HomePanel。确保gameFrame扩展homePanel或某个容器。如果需要,只需从框架中删除JPanel并添加另一个视图即可。

之类的东西
homePanel

还要确保remove(homePanel); add(nextView); 扩展nextView或某个容器。 使用布局管理器进行更好的定位