Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1

    Lỗi vòng lặp trong java

    Mình có viết 1 chương trình java để random 2 đối tượng ở hai vị trí bất kì như sau:
    Mã nguồn PHP:
    package javademoandroidvn;import java.awt.Graphics;import java.awt.Graphics2D;import java.awt.RenderingHints;import java.util.Random;import javax.swing.JFrame;import javax.swing.JPanel;public class Main extends JPanel { //int []a = {0,1}; public int []b = new int[6]; public int []c= new int[6]; @Override public void paint(Graphics g){ super.paint(g); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); int x=0; Random t= new Random(); int rd1 = t.nextInt(2); int rd2 = t.nextInt(2); int rd3 = t.nextInt(2); int rd4 = t.nextInt(2); int rd5 = t.nextInt(2); b[1]=rd1; b[2]=rd2; b[3]=rd3; b[4]=rd4; b[5]=rd5; int d=0; while(d<2) { if(b[1]==1) { if(d<2) { g2d.fillRect(x, 660 ,40, 40); d++; } } if(b[2]==1) { if(d<2) { g2d.fillRect(x, 520 ,40, 40); d++; } } if(b[3]==1) { if(d<2) { g2d.fillRect(x, 380 ,40, 40); d++; } } if(b[4]==1) { if(d<2) { g2d.fillRect(x, 240 ,40, 40); d++; } } if(b[5]==1) { if(d<2) { g2d.fillRect(x, 100 ,40, 40); d++; } } } } public static void main(String[] args) throws InterruptedException{ JFrame frame = new JFrame(); Main main=new Main(); frame.add(main); frame.setSize(1200,730); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); int i; while (true) { main.repaint(); Thread.sleep(10); } }}  
    nhưng khi chạy thì nó đã ra vị trí bất kì nhưng không hiểu nó bị lỗi gì mà không tắt được cửa sổ netbean đi , mình ngồi cả buổi tối mà không tìm ra chỗ sai, mong các bạn giúp mình.
    ps: mình mới học java được 4-5 tuần nên còn nhiều kiến thức chưa rõ mong các bạn hướng dẫn chi tiết.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Sao bạn là đẻ cái vòng lặp vô tận ở cuối là gì?
    Muốn vẽ lại thì một luồng chạy song song với luồng chính để gọi đến phương thức vẽ lại chứ. Làm vậy nó không đóng là phải.

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •