全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1112
推到 Plurk!
推到 Facebook!

請問用Canvas物件繪圖的問題

缺席
Sephiroth105
一般會員


發表:13
回覆:5
積分:3
註冊:2003-05-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-05 15:25:28 IP:61.70.xxx.xxx 未訂閱
import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
import java.awt.event.*;    public class CircleButton extends Canvas implements MouseListener
{
        int uniqueNum;
        Ellipse2D.Double ep;
        
        public CircleButton(double x,double y,double r,int rNumber)
        {
                uniqueNum = rNumber;
                ep = new Ellipse2D.Double(x,y,r,r);
                addMouseListener(this);
        }
        
        public void paint(Graphics g) 
        {                  
                  Graphics2D g2 = (Graphics2D)g;
                  g2.setColor(Color.black);
                    g2.fill(ep);
                    g2.setColor(Color.green);
                    g2.draw(ep);
                    
             }
             
             public void mousePressed(MouseEvent e){}
             public void mouseClicked(MouseEvent e)
             {
                     if(ep.contains(e.getX(),e.getY()))
                     {
                             JOptionPane.showMessageDialog(null, "clicked", Integer.toString(uniqueNum), JOptionPane.ERROR_MESSAGE); 
                     }
             }
                             
             public void mouseReleased(MouseEvent e){}
             public void mouseEntered(MouseEvent e){}
             public void mouseExited(MouseEvent e){}
             
         public static void main(String[] arg)
          {
                  JFrame f = new JFrame("test");
                  CircleButton b1 = new CircleButton(50,70,30,1);
                  CircleButton b2 = new CircleButton(100,20,30,2);
                  f.addWindowListener(new WindowAdapter()
                  {
                          public void windowClosing(WindowEvent e)
                          {        
                                  Window w = e.getWindow();
                                    w.setVisible(false);
                                    w.dispose();
                                    System.exit(0);
                          }
                  });
                  f.getContentPane().add(b1);
                  f.getContentPane().add(b2);
                  f.setVisible(true);
                  f.setSize(new Dimension(300,300));
          }    }    
我有兩的問題: 1 爲什麼我需要動一下視窗的大小,才能show出圖形 2.爲什麼我的b1在b2加入後就消失了?? 我該怎麼做才能限制住canvas的大小,使他成為建構中圓形的大小 ,而不讓整個canvas物件覆蓋住另一個? 請幫我解答,謝謝
系統時間:2024-05-20 6:30:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!