2013-03-20 2 views
1

이미지가있는 일반 창을 만들었습니다. 나는 "시작하려면 여기를 누르십시오"라는 버튼을 만드는 방법에 대해 궁금 해서요. 눌렀을 때 프로그램을 닫고 다른 프로그램을 시작합니다.Java 프로그램을 닫고 GUI에서 다른 방법으로 이동하는 방법

+2

다른 프로그램을 시작하거나 동일한 프로그램 내에서 다른 창을 시작 하시겠습니까? – HXCaine

+0

Define * "프로그램을 닫고 다른 프로그램을 시작합니다"*? 외부 프로세스를 실행하거나 다른 Java 창을 여는 중입니까? – MadProgrammer

+0

미안하지만, 나는 그것이 수학 게임과 같은 코드의 두 번째 비트를 시작할 것이라는 것을 의미했다. 그래서 당신은 꽃밥 창을 가져올 것이다. – TheEagle

답변

5

내가 How to use Buttons를 살펴함으로써 시작하고 또한 How to Use CardLayout

살펴 것

이것은 하나의 창을하고 SECON에 당신이

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

2

창을 숨기고 리소스를 유지하려면 JFrame.setVisible(false)을 사용하십시오. 완전히 제거하려면 dispose() 메소드를 사용하십시오.

새 창을 열려면 첫 번째 창을 시작한 것과 비슷한 코드를 사용하십시오.

많은 자원 Oracle's own site을 포함하여, 당신이 버튼을 만드는 방법을 배울 도움이됩니다 온라인 및 this website에 있습니다

0

단순히 기본 전화해야 코드 스위칭의 양을 (문자열 []) 감소 할 수 있습니다 d 프로그램을 시작하십시오. 현재 하나가 더 이상 필요하지 않으면 해당 프레임에서 dispose()를 호출하십시오.

두 번째 프로그램의 클래스는 클래스 경로에 있어야합니다. 적절한 bash/bat 시작 스크립트를 작성하거나 모든 클래스를 단일 병에 묶음으로써 쉽게 정렬 할 수 있습니다.

관련 문제