Trang 1 / 2 12 LastLast
Hiển thị kết quả từ 1 đến 10 / 11
  1. #1
    Tham gia
    14-03-2009
    Bài viết
    42
    Like
    0
    Thanked 0 Times in 0 Posts

    Thông tin bắt sự kiện trong java

    chào các bạn, mình có một vấn đề muốn đựoc các bạn chỉ giúp. Mình muốn dùng "chuột vẽ một đường thẳng từ 2 điểm bất kì". nhưng mình gặp vấn đề là đường thẳng mình vẽ chỉ xuất phát từ 1 điểm, nghĩa là khi mình nhấp chuột thì 1 đừong thẳng đựoc tạo ra từ 1 điểm cố định.Hàm mousePressed duỳng để bắt sự kiện này nhưng mình không biết phải dùng thế nào nữa. mong các bạn chỉ giúp. thanks.........
    Quote Quote

  2. #2
    Tham gia
    04-07-2009
    Bài viết
    854
    Like
    0
    Thanked 7 Times in 7 Posts
    vào java2s.com thì đầy ví dụ cho bạn học

    về ý tưởng: có 2 cách thực hiện

    1/ bạn click xuống canvas -> lưu lại x1,y1 -> buông chuột -> click lên 1 điểm khác -> lưu lại x2,y2 -> vẽ line từ x1,y1 -> x2,y2

    2/ bạn click xuống canvas -> lưu lại x1,y1 -> nắm giữ chuột trái, và rê chuột đến chỗ khác buông ra -> ngay tại chỗ buông -> lưu lại x2,y2 -> vẽ line từ x1,y1 -> x2,y2

    Trong MouseListener có 6 MouseEvent, vào java2s đọc code thử xem

  3. #3
    Tham gia
    22-07-2004
    Bài viết
    5
    Like
    0
    Thanked 0 Times in 0 Posts
    Trong Java để "lắng nghe" sự kiện ta phải implement các interface Listener. Cụ thể : với Jbutton implement ActionListener, MouseEvent implement MouseListener....

    Sau đó phải đăng kí class đã implement listener với đối tượng (source event).Cụ thể : button, frame....

    viết lại hàm thực hiện sự kiện theo ý mình : với button là actionPerformed, với mouse thì có các hàm MousePressed() mouseClicked()...

    Mình sẽ viết code vd cụ thể cho vấn đề của bạn sau.

  4. #4
    Tham gia
    04-07-2009
    Bài viết
    854
    Like
    0
    Thanked 7 Times in 7 Posts
    mình không rành về Graphics và vẽ vời, nên chỉ demo cho bạn phần bắt event trên mouse thôi

    PHP Code:
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.event.MouseListener.*;
    import java.awt.event.WindowListener.*;

     
    public class 
    MyCanvas extends Frame
    {
        
    int a,b,x,y;
        
    Boolean flag=true;
        
        public 
    MyCanvas()
        {
            
            
    setSize(500,500);
            
            
    this.addMouseListener(new MouseAdapter()
            {
                public 
    void mouseClicked(MouseEvent e)
                {
                    
    System.out.println("\n" e.getX()+"/"+e.getY());
                    if(
    flag)
                    {
                        
    e.getX();
                        
    e.getY();
                        
    flag = !flag;
                    }
                    else
                    {
                        
    e.getX();
                        
    e.getY();
                        
    flag = !flag;
                        
    Ve();
                    }
                }
            }
            );
            
            
    this.addWindowListener(new WindowAdapter()
            {
                public 
    void windowClosing(WindowEvent e)
                {
                    
    System.exit(-1);
                }
            }
            );
        }
        public 
    void Ve()
        {
            
    System.out.printf("ve diem tu (%d,%d) den (%d,%d)",a,b,x,y);
        }
        public static 
    void main(String args***91;***93;)
        {
            new 
    MyCanvas().setVisible(true);
        }

    // ngòai ra còn có các method khác chưa override: mouseExited,mouseReleased,mouseEntered,mousePresse d, cách dùng cũng tương tự

  5. #5
    Tham gia
    14-03-2009
    Bài viết
    42
    Like
    0
    Thanked 0 Times in 0 Posts
    cảm ơn các bạn nhiều nha!! để mình về text lại, có j hog hiểu mình sẽ nhờ các bạn tiếp nha!!hihi

  6. #6
    Tham gia
    14-03-2009
    Bài viết
    42
    Like
    0
    Thanked 0 Times in 0 Posts
    ok! thanks các bạn nha! mình đã làm được rồi.
    Giờ mình muốn vẽ một số hình tròn, xong rồi mình sẽ nối lại bằng 1 đường thẳng. Giống như vẽ một đồ thị vô hướng vậy đó các bạn...vậy mình làm thế nào?? hiii,

  7. #7
    Tham gia
    07-08-2007
    Bài viết
    239
    Like
    0
    Thanked 1 Time in 1 Post
    Quote Được gửi bởi hieugallant_88 View Post
    ok! thanks các bạn nha! mình đã làm được rồi.
    Giờ mình muốn vẽ một số hình tròn, xong rồi mình sẽ nối lại bằng 1 đường thẳng. Giống như vẽ một đồ thị vô hướng vậy đó các bạn...vậy mình làm thế nào?? hiii,
    Một cái đồ thị vô hướng thì theo mình bạn nên tổ chức nó thành một cấu trúc dữ liệu, viết theo hướng đối tượng, thế bạn mới có thể quản lý được bạn đã vẽ những hình tròn nào, rồi nối những hình tròn đó bằng những đường thẳng

  8. #8
    Tham gia
    27-04-2009
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts
    Làm sao để chỉnh sửa kích thước của hình đã vẽ vậy?
    Ví dụ như mình kích chuột vào hình đó và thay đổi độ rộng của nó ấy

    [=========> Bổ sung bài viết <=========]

    Thấy đứa bạn mình bảo ép hình vào thành ảnh nhưng mình không biết làm như thế nào cả?
    Ai biết thì giúp mình với
    !
    Được sửa bởi nhuevp lúc 16:19 ngày 24-10-2009 Reason: Bổ sung bài viết

  9. #9
    Tham gia
    25-01-2007
    Location
    TP Hồ Chí Minh
    Bài viết
    90
    Like
    7
    Thanked 3 Times in 3 Posts
    Quote Được gửi bởi nhuevp View Post
    Làm sao để chỉnh sửa kích thước của hình đã vẽ vậy?
    Ví dụ như mình kích chuột vào hình đó và thay đổi độ rộng của nó ấy

    [=========> Bổ sung bài viết <=========]

    Thấy đứa bạn mình bảo ép hình vào thành ảnh nhưng mình không biết làm như thế nào cả?
    Ai biết thì giúp mình với
    !
    Tốt nhất là tổ chức theo hướng đối tượng, độ rộng là thuộc tính của đối tượng, lúc đó muốn thay đổi thì chỉ việc set lại thuộc tính đó thôi. Muốn kích chuột để chọn hình thì liên quan tới picking, tham khảo chương selection trong cuốn redbook.
    Còn ép hình thành ảnh là gì thì....ko biết .

  10. #10
    Tham gia
    08-03-2009
    Bài viết
    6
    Like
    0
    Thanked 0 Times in 0 Posts
    Mình mới học Java nên dở lắm. Mình muốn hỏi có cách nào lấy dữ liệu trong Textfield mà không phải là dạng String. Mình muốn lấy dữ liệu int thì làm sao? Mong được giúp đỡ. Thanks cả nhà!

Trang 1 / 2 12 LastLast

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • 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
  •