java 자바 기초 타이머 문제

java 자바 기초 타이머 문제

작성일 2015.12.16댓글 0건
    게시물 수정 , 삭제는 로그인 필요

일단 문제는 이 밑에 프로그램에서 방향버튼을 누르면 저 까만 원반이 그 방향으로 움직여야합니다!


한번 방향키가 눌리면 다른 버튼이 눌릴때까지 쭉~ 그 방향으로 움직여야해서 타이머를 쓰라는데.. 타이머 쓰는방


법을 모르네요...ㅠㅠ


 

쓸데없는 일부분은 지운 코드입니다:

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.util.Random;


public  class SaucerPanel extends JPanel implements ActionListener{

  private final static int saucerMoveIncrement = 5;//how far to move the saucer each tick

  private final static int initialSaucerXpos = 10;

  private final static int initialSaucerYpos = 50;

  private String saucerHoveringStatus = "hovering...";

  private String saucerLandedStatus = "landed!";

  private String saucerStatus = saucerHoveringStatus;

  private int saucerXpos = initialSaucerXpos; 

  private int saucerYpos = initialSaucerYpos;

  private boolean hovering = true;// state of saucer

  private String direction; //direction of saucer

  //GUI components 

  private JButton upBtn = new JButton("Up");

  private JButton downBtn = new JButton("Down");

  private JButton leftBtn = new JButton("Left");

  private JButton rightBtn = new JButton("Right");

  private JButton resetBtn = new JButton("Reset");

    // used to generate random dots as "debris" from a crash

  private Random r = new java.util.Random();

  // Timer object with a delay of 100ms

  private Timer timer = new Timer(100,this);  


  public SaucerPanel(){

    setPreferredSize(new Dimension(panelWidth, panelHeight));

    setBackground(skyColor);

    setOpaque(true);

    this.add(upBtn);  

    this.add(downBtn);

    this.add(leftBtn); 

    this.add(rightBtn);

    this.add(resetBtn);

    upBtn.addActionListener(this);

    downBtn.addActionListener(this);

    leftBtn.addActionListener(this);

    rightBtn.addActionListener(this);

    resetBtn.addActionListener(this);

  }


  public void paintComponent(Graphics g){

    super.paintComponent(g);

    drawGround(g);

    drawBuildings(g);

    if (hovering) 

      drawSaucer(g, saucerXpos, saucerYpos);

    else

      drawCrash(g);

  }

  

  private void drawSaucer(Graphics g, int xPos, int yPos){

    g.setColor(saucerColor);

    g.fillOval(xPos, yPos, saucerWidth, saucerHeight);

    //15pixels added to yPos+saucerHeight to make status appear under saucer

    g.drawString(saucerStatus, xPos, (yPos+saucerHeight+15));

  }

  

  //draw a bunch of points to simulate debris

  private void drawCrash(Graphics g){

    g.setColor(Color.black);

    for(int i = 0; i < 400; i++)

      ranPoints(10,350,g);

  }   

 


  public void actionPerformed(ActionEvent e){      

     

       if (e.getSource() == resetBtn){

          saucerXpos = initialSaucerXpos;

          saucerYpos = initialSaucerYpos;

          }      

          

       if (e.getSource() == leftBtn){         

          saucerXpos -= saucerMoveIncrement;

          }

                   

       if (e.getSource() == rightBtn){

          saucerXpos += saucerMoveIncrement;

          

          }

          

       if (e.getSource() == upBtn){

          saucerYpos -= saucerMoveIncrement;

          

          }

      

       if (e.getSource() == downBtn){

          saucerYpos += saucerMoveIncrement;

          

          }

          

       if (saucerTouchingBuilding(saucerXpos, saucerYpos)||saucerXpos == 0 || saucerXpos == 410){

          hovering = false; 

          }

          

       if(saucerYpos+saucerHeight == groundYpos){

       if(landedInBounds(saucerYpos)){

          saucerStatus = saucerLandedStatus;

          hovering = true;

          }

       else hovering = false;

          

          }

          

          repaint();

      

         }

         }


다른 부분은 건들이지않고 저 연노란 actionPerformed 부분만 고치면되는데요...
제가 지금 타이머를 쓸 줄 몰라서 
지금은 버튼 한번 누르면 그 방향으로 한번만 움직입니다...
타이머를 어떻게 써야 버튼한번눌렀을때 그 방향으로 쭈욱 갈까요?



#java 자바스크립트 실행 #java 자바 #west java 자바 #자바 import java.util.* #자바 java.lang.nullpointerexception #자바 java.lang.arrayindexoutofboundsexception #자바 환경변수 java_home #자바스크립트 java 함수 호출 #자바 java.util.nosuchelementexception #자바 java.util.date

[내공100]java 자바 기초 개념 문제집이나...

... 자바뿐만 아니라 다른 언어들에 대한 문제도 다양하게 제공되고 있습니다. 기초부터 고급까지 다양한 주제를 다루고 있어서 적합한 문제를 찾기 쉽습니다. 3. Baekjoon...

java(자바) 기초 질문입니다

... 여기서 문제인데 실행시키면 100넘게 값주면 돌아가는데... 내공 10걸겠습니다 자바는 선언문이 어떻게 됩니까? import java.io.BufferedReader; import...

자바기초문제5 (N포인트 사례)

... 날짜는 LocalDate클래스를 이용(Calendar와 Date클래스도 이용 가능) https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html 1. 출력은 입력한 달을...

자바(JAVA) 기초배열 문제질문

... import java.util.Scanner; public class Array02 { public static void main... import java.util.Scanner; public class Array02 { public static void main(String...

자바스크립트(JavaScript) 타이머...

자바스크립트(JavaScript) setInterval이나 타이머interval설정 소수점으로 가능한가요.... 1000분에 1초라는 것을 인지하고 계시므로, 아래 예제를 적용하셔도 문제...