2013-03-20 85 views
1

我用图像制作了一个普通窗口。我想知道如何制作一个按钮说“点击这里开始”,当按下这个按钮将关闭程序并启动另一个程序。Java如何关闭程序并从GUI移动到另一个

+2

你想在同一个程序中启动另一个程序或启动另一个窗口吗? – HXCaine 2013-03-20 00:09:08

+0

定义*“将关闭程序并启动其他程序”*?您正在执行外部进程还是尝试打开另一个Java窗口? – MadProgrammer 2013-03-20 00:09:20

+0

对不起,我的意思是它会启动我的代码的第二位,这就像数学游戏,所以你会提出另一个窗口 – TheEagle 2013-03-20 00:13:36

回答

5

我想先在看看How to use Buttons开始,也看看How to Use CardLayout

这将让你有一个窗口和减少对你的塞康的转换代码,你需要

import java.awt.CardLayout; 
import java.awt.EventQueue; 
import java.awt.GridBagLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 

public class SimpleDemo { 

    public static void main(String[] args) { 
     new SimpleDemo(); 
    } 

    public SimpleDemo() { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
       } 

       final CardLayout cardLayout = new CardLayout(); 
       final JFrame frame = new JFrame("Testing"); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.setLayout(cardLayout); 

       JPanel startPanel = new JPanel(new GridBagLayout()); 
       JButton startButton = new JButton("Start"); 
       startPanel.add(startButton); 
       startButton.addActionListener(new ActionListener() { 
        @Override 
        public void actionPerformed(ActionEvent e) { 
         cardLayout.show(frame.getContentPane(), "game"); 
        } 
       }); 

       JLabel game = new JLabel("Game On", JLabel.CENTER); 

       frame.add(startPanel, "start"); 
       frame.add(game, "game"); 

       cardLayout.show(frame.getContentPane(), "start"); 

       frame.pack(); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true); 
      } 
     }); 
    } 
+0

非常有帮助 – TheEagle 2013-03-20 00:31:45

2

要隐藏窗口但保留资源,请使用JFrame.setVisible(false)。要完全摆脱它,请使用dispose()方法。

要启动新窗口,请使用与您用来启动第一个窗口的代码类似的代码。

有很多资源可在网上和this website,这将有助于您了解如何创建一个按钮,包括Oracle's own site

0

直接让主量(字符串[]) d程序启动它。如果当前不再需要,请在其框架上调用dispose()。

你的第二个程序的类必须在类路径中。这可以通过编写适当的bash/bat启动脚本来安排,也可以将所有类捆绑到单个jar中。

相关问题