java
1import java.util.*; 2import java.awt.*; 3import java.awt.event.*; 4@SuppressWarnings("unchecked") 5 6class Paint3 extends Frame implements MouseListener,MouseMotionListener,ActionListener{ 7 int x,y,j,i; 8 Vector objList; 9 CheckboxGroup cbg,color,nuru; 10 Checkbox c1,c2,c3,c4,c5; 11 Checkbox b1,b2,b3; 12 Checkbox a1,a2; 13 Button end; 14 int mode = 0; 15 Figure obj; 16 public static void main(String[] args){ 17 Paint3 f=new Paint3(); 18 f.setSize(640,480); 19 f.setTitle("Paint Sample"); 20 f.addWindowListener(new WindowAdapter(){ 21 @Override public void windowClosing(WindowEvent e){ 22 System.exit(0); 23 }}); 24 f.setVisible(true); 25 } 26 27 Paint3(){ 28 objList = new Vector(); 29 // 30 cbg=new CheckboxGroup(); 31 color=new CheckboxGroup(); 32 nuru=new CheckboxGroup(); 33 c1=new Checkbox("丸",cbg,true); 34 c2=new Checkbox("円",cbg,false); 35 c3=new Checkbox("四角",cbg,false); 36 c4=new Checkbox("線",cbg,false); 37 c5=new Checkbox("楕円",cbg,false); 38 b1=new Checkbox("黒",color,true); 39 b2=new Checkbox("赤",color,false); 40 b3=new Checkbox("青",color,false); 41 a1=new Checkbox("塗りつぶし",nuru,true); 42 a2=new Checkbox("塗りつぶさない",nuru,false); 43 end=new Button("終了"); 44 c1.setBounds(530,30,60,30); 45 c2.setBounds(530,60,60,30); 46 c3.setBounds(530,90,60,30); 47 c4.setBounds(530,120,60,30); 48 c5.setBounds(530,150,60,30); 49 b1.setBounds(530,180,60,30); 50 b2.setBounds(530,210,60,30); 51 b3.setBounds(530,240,60,30); 52 a1.setBounds(530,270,90,30); 53 a2.setBounds(530,300,100,30); 54 end.setBounds(530,330,60,30); 55 b2.setForeground(Color.red); 56 b3.setForeground(Color.blue); 57 setLayout(null); 58 add(c1); 59 add(c2); 60 add(c3); 61 add(c4); 62 add(c5); 63 add(b1); 64 add(b2); 65 add(b3); 66 add(a1); 67 add(a2); 68 add(end); 69 // 70 addMouseListener(this); 71 addMouseMotionListener(this); 72 // 73 end.addActionListener(this); 74 } 75 @Override public void paint(Graphics g){ 76 Figure f; 77 for(int i=0;i<objList.size();i++){ 78 f=(Figure)objList.elementAt(i); 79 f.paint(g); 80 } 81 if(mode >= 1) obj.paint(g); 82 } 83 84 @Override public void actionPerformed(ActionEvent e){ 85 System.exit(0); 86 } 87 @Override public void mousePressed(MouseEvent e){ 88 Checkbox c,b,a; 89 x=e.getX(); 90 y=e.getY(); 91 c=cbg.getSelectedCheckbox(); 92 b=color.getSelectedCheckbox(); 93 a=nuru.getSelectedCheckbox(); 94 obj = null; 95 if(c==c1){ 96 mode = 1; 97 obj = new Ring(j,i); 98 }else if(c==c2){ 99 mode = 2; 100 obj = new Circle(j,i); 101 }else if(c==c3){ 102 mode = 2; 103 obj = new Box(j,i); 104 }else if(c==c4){ 105 mode = 2; 106 obj = new Line(j,i); 107 }else if(c==c5){ 108 mode = 2; 109 obj = new ellipse(j,i); 110 }if(obj !=null){ 111 obj.moveto(x,y); 112 repaint(); 113 }if(b==b1){ 114 j=0; 115 }else if(b==b2){ 116 j=1; 117 }else if(b==b3){ 118 j=2; 119 }if(a==a1){ 120 i=1; 121 }else if(a==a2){ 122 i=2; 123 } 124 } 125 @Override public void mouseReleased(MouseEvent e){ 126 x = e.getX(); 127 y = e.getY(); 128 if(mode==1) obj.moveto(x,y); 129 else if(mode==2) obj.setWH(x-obj.x,y-obj.y); 130 if(mode >= 1){ 131 objList.add(0,obj); 132 obj=null; 133 } 134 mode=0; 135 repaint(); 136 } 137 @Override public void mouseClicked(MouseEvent e){} 138 @Override public void mouseEntered(MouseEvent e){} 139 @Override public void mouseExited(MouseEvent e){} 140 @Override public void mouseDragged(MouseEvent e){ 141 x=e.getX(); 142 y=e.getY(); 143 if(mode==1){ 144 obj.moveto(x,y); 145 }else if(mode==2){ 146 obj.setWH(x-obj.x,y-obj.y); 147 } 148 repaint(); 149 } 150 @Override public void mouseMoved(MouseEvent e){} 151} 152class Coord { 153 int x,y; 154 public void paint(Graphics g){} 155 Coord(){ 156 x = y = 0; 157 } 158 public void move(int dx,int dy){ 159 x += dx; 160 y += dy; 161 } 162 public void moveto(int x,int y){ 163 this.x = x; 164 this.y = y; 165 } 166} 167class Figure extends Coord{ 168 int aaa; 169 int w,h; 170 int bbb; 171 Figure(){ 172 aaa=0; 173 bbb=0; 174 w = h = 0; 175 } 176 public void paint(Graphics g){} 177 public void setWH(int w, int h){ 178 this.w=w; 179 this.h=h; 180 } 181} 182class Ring extends Figure{ 183 int size; 184 Ring(int j,int i){ 185 size = 10; 186 aaa = j; 187 bbb = i; 188 } 189 @Override public void paint(Graphics g){ 190 if(aaa==0)g.setColor(Color.black); 191 if(aaa==1)g.setColor(Color.red); 192 if(aaa==2)g.setColor(Color.blue); 193 if(bbb==1)g.fillOval(x - size/2,y - size/2,size,size); 194 if(bbb==2)g.drawOval(x - size/2,y - size/2,size,size); 195 } 196} 197class Circle extends Figure{ 198 Circle(int j,int i){ 199 aaa = j; 200 bbb = i; 201 } 202 @Override public void paint(Graphics g){ 203 if(aaa==0)g.setColor(Color.black); 204 if(aaa==1)g.setColor(Color.red); 205 if(aaa==2)g.setColor(Color.blue); 206 int r=(int)Math.sqrt((double)(w*w+h*h)); 207 if(bbb==1)g.fillOval(x - r,y - r,r*2,r*2); 208 if(bbb==2)g.drawOval(x - r,y - r,r*2,r*2); 209 } 210} 211class Box extends Figure{ 212 Box(int j,int i){ 213 aaa = j; 214 bbb = i; 215 } 216 @Override public void paint(Graphics g){ 217 if(aaa==0)g.setColor(Color.black); 218 if(aaa==1)g.setColor(Color.red); 219 if(aaa==2)g.setColor(Color.blue); 220 if(bbb==1){if(w>0&&h>0){ 221 g.fillRect(x,y,w,h); 222 }else if(w<0&&h>0){ 223 g.fillRect(x+w,y,-w,h); 224 }else if(w>0&&h<0){ 225 g.fillRect(x,y+h,w,-h); 226 }else if(w<0&&h<0){ 227 g.fillRect(x+w,y+h,-w,-h); 228 }} 229 if(bbb==2){if(w>0&&h>0){ 230 g.drawRect(x,y,w,h); 231 }else if(w<0&&h>0){ 232 g.drawRect(x+w,y,-w,h); 233 }else if(w>0&&h<0){ 234 g.drawRect(x,y+h,w,-h); 235 }else if(w<0&&h<0){ 236 g.drawRect(x+w,y+h,-w,-h); 237 } 238 } 239} 240class Line extends Figure{ 241 Line(int j,int i){ 242 aaa = j; 243 bbb = i; 244 } 245 @Override public void paint(Graphics g){ 246 if(aaa==0)g.setColor(Color.black); 247 if(aaa==1)g.setColor(Color.red); 248 if(aaa==2)g.setColor(Color.blue); 249 g.drawLine(x,y,x+w,y+h); 250 } 251} 252class ellipse extends Figure{ 253 ellipse(int j,int i){ 254 aaa = j; 255 bbb = i; 256 } 257 @Override public void paint(Graphics g){ 258 if(aaa==0)g.setColor(Color.black); 259 if(aaa==1)g.setColor(Color.red); 260 if(aaa==2)g.setColor(Color.blue); 261 if(bbb==1)g.fillOval(x,y,w,h); 262 if(bbb==2)g.drawOval(x,y,w,h); 263 } 264 } 265} 266
このプログラムをコンパイルすると
new4.java:106: エラー: クラス Lineのコンストラクタ Lineは指定された型に適用できません。
obj = new Line(j,i);
^
期待値: 引数がありません
検出値: int,int
理由: 実引数リストと仮引数リストの長さが異なります
new4.java:109: エラー: クラス ellipseのコンストラクタ ellipseは指定された型に適用できません。
obj = new ellipse(j,i);
^
期待値: 引数がありません
検出値: int,int
理由: 実引数リストと仮引数リストの長さが異なります
エラー2個
このエラーが出てきてしまいます。
どこを直せばよいのでしょうか。