2009-03-16 17 views
1

좋아, 그래서 꽤 멍청한 놈, 그리고 프로그래밍에 일반적으로 정말. 나는 GUI 인터페이스로 실행되는 바위, 종이, 가위 응용 프로그램을 만들려고합니다. 내가 시도한 것은 내가 생각한 가장 단순한 것인데, 당신이 선택한 (r, p, 또는 s) 버튼을 누르면 프로그램의 나머지 부분에서 컴퓨터의 선택과 비교하여 변수를 만들어서 승자를 찾는다. , 등등. 나는 이미 프로그램이 작동했습니다, 문제는 GUI 물건입니다. netbeans와 JFrame을 사용하고 있습니다. 이것은 완전히 새로운 것입니다. 나는 많은 질문을 가지고 있으며 누군가가 연결할 수있는 훌륭한 튜토리얼이있을 수 있지만 공식 netbeans 사이트를 사용하는 것은 지금까지별로 도움이되지 못했다. 어쨌든 :netbeans GUI 프레임의 버튼을 사용

  1. 나는 텍스트 프로그램에있을 새로운 클래스를 만들거나 내가 사용하는 프레임의 기본 방법에 넣어 것입니다 내 주요 방법 코드를 넣어 어디 모르겠어요.

  2. 왜냐하면 내가 컴파일 할 수없는 이유는 주 기능이 버튼에서 원하는 변수를 사용하려고하기 때문입니다. 내가하는 일의 순서는 모두 알지 못한다. netbeans 예를 살펴보면 좀 더 복잡한 작업을 수행하여이 작업을 수행 할 수 있다고 생각하지만 불필요한 것으로 보입니까?

답변

0

스윙에 대한 기사 및 자습서를 찾고 싶습니다.

다음
// RockPaperScissors is the JFrame as well as the KeyListener. 
// You could make another class to handle the key presses instead by doing: 
// addKeyListener(new myOtherClass()); 
// So long as myOtherClass implements KeyListener 
class RockPaperScissors extends JFrame implements KeyListener { 
    public RockPaperScissors() { 
    // Listen for any key presses. 
    addKeyListener(this); 
    } 

    public void keyPressed(KeyEvent e) { 
    // Figure out which key was pressed based on it's code. 
    // http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/KeyEvent.html 
    switch (e.getKeyCode()) { 
     case e.VK_R: 
     // Rock 
     break; 
     case e.VK_P: 
     // Paper 
     break; 
     case e.VK_S: 
     // Scissors 
     break; 
    } 
    } 

    // You can use these if you want, but we don't care about them. 
    public void keyReleased(KeyEvent e) { } 
    public void keyTyped(KeyEvent e) { } 
} 

void main() { 
    // Set up the GUI (which is just a JFrame!) 
    new RockPaperScissors(); 
    // The main program can exit because the JFrame runs on it's own thread. 
} 
1

내가 넷빈즈를 사용하여 신속 큰 GUI를 크랭크하려는 경우 좋은 있음을주의 할 learning about Swing.을 시작하기에 좋은 장소이지만 :

여기에 코드를 조금 당신을 도와입니다 Swing의 작동 방식에 익숙하지 않은 경우 더 많은 문제가 발생할 수 있습니다. 내 프로젝트에서 배운 내용에서

몇 가지 팁 :

  • 프로그램의 기본 모델이 GUI를 쓰기 시작하기 전에 될 것입니다 무엇을 생각하십시오. 예를 들어, 아마도 당신이 의사 코드 같은 게임 클래스를 사용하는 것이 다음 Model-View-Controller 패턴을 사용
Start a new game 
    Get the player's choice 
    Randomly generate a choice for the computer 
    Compare the choices 
     if the player's choice is stronger 
     player wins 
     else computer wins 
    return the winner
  • 빌드 할 수있는 GUI가있을 때 시작하기에 좋은 장소입니다. 이렇게하면 프로그램의 구성 요소가 분리됩니다. 뷰 또는 모델을 변경해야하는 경우 다른 구성 요소를 손상시키지 않습니다.

  • 일반적으로 Java에서 실제로 의미하는 바는 뷰와 컨트롤러를 하나로 묶어 일반적으로 qping이 가리키는대로 JFrame을 확장한다는 것입니다. JFrame에는 모델 클래스에 대한 참조와 다양한 컨트롤이 포함 된 패널이 필요합니다.

1

당신이 사용하는 같은 코드에 넣어 시작하는 장소는 소스 패키지 디렉토리에 일반적으로 당신에게 새로운 프로젝트라는 것을 이름합니다 : YourFileName.java

열쇠는 이름 당신을 찾는 것입니다

을 새 프로젝트의 파일 이름에 설정에 추가됩니다.

일단 들어가면 애플리케이션을 시작하는 몇 가지 방법이 있습니다. 그리고 바닥에 당신과 내가 가장 잘 알고있는 메인()이있는 곳입니다 :).

... 

    @Override 
    protected void configureWindow(java.awt.Window root) { 
    } 

    /** 
    * A convenient static getter for the application instance. 
    * @return the instance of DesktopApplication1 
    */ 


    public static DesktopApplication1 getApplication() { 
     return Application.getInstance(DesktopApplication1.class); 
    } 

    /** 
    * Main method launching the application. 
    */ 

    public static void main(String[] args) { 
    launch(DesktopApplication1.class, args); 

    } 
} 

필자는 데스크톱 생성 응용 프로그램을 선호합니다. 미리 생성 된 많은 코드로 시작하기 때문에 개인적으로 선호합니다.