teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

追加

2017/05/09 00:44

投稿

toutou
toutou

スコア2052

title CHANGED
File without changes
body CHANGED
@@ -198,4 +198,80 @@
198
198
  {
199
199
  }
200
200
  }
201
+ ```
202
+
203
+ さらに追記
204
+
205
+ ```ここに言語を入力
206
+ class GPanel extends JPanel implements MouseListener, MouseMotionListener{
207
+ private int move_x = -100;
208
+ private int move_y = -100;
209
+ private int start_x = -100;
210
+ private int start_y = -100;
211
+ private boolean flag = false;
212
+
213
+ BufferedImage seve_field = new BufferedImage(600,600, BufferedImage.TYPE_4BYTE_ABGR);
214
+ public GPanel()
215
+ {
216
+ addMouseListener(this);
217
+ addMouseMotionListener(this);
218
+ }
219
+ @Override
220
+ public void paintComponent(Graphics g)
221
+ {
222
+ Graphics2D g2= (Graphics2D)g;
223
+ BasicStroke BStroke = new BasicStroke(5.0f);
224
+ g2.setStroke(BStroke);
225
+ g2.setColor(Color.RED);
226
+ Graphics seve = seve_field.createGraphics();
227
+ Graphics2D seve2= (Graphics2D)seve;
228
+ seve2.setStroke(BStroke);
229
+ seve2.setColor(Color.RED);
230
+
231
+ if(start_x==-100||start_y== -100||move_x==-100||move_y==-100)
232
+ {
233
+ move_x = move_y = start_x = start_y = -100;
234
+ }
235
+ g2.drawImage(seve_field,0,0,this);
236
+ seve2.drawLine(start_x, start_y, move_x, move_y);
237
+ g2.drawLine(start_x, start_y, move_x, move_y);
238
+ start_x = move_x;
239
+ start_y = move_y;
240
+ }
241
+ @Override
242
+ public void mousePressed(MouseEvent e)
243
+ {
244
+ flag =false;
245
+ start_x = move_x = e.getX();
246
+ start_y = move_y = e.getY();
247
+ }
248
+ @Override
249
+ public void mouseReleased(MouseEvent e)
250
+ {
251
+ flag = true;
252
+ move_x = move_y = start_x = start_y = -100;
253
+ }
254
+ @Override
255
+ public void mouseDragged(MouseEvent e)
256
+ {
257
+ move_x = e.getX();
258
+ move_y = e.getY();
259
+ repaint();
260
+ }
261
+ @Override
262
+ public void mouseClicked(MouseEvent e)
263
+ {
264
+ }
265
+ @Override
266
+ public void mouseEntered(MouseEvent e)
267
+ {
268
+ }
269
+ @Override
270
+ public void mouseExited(MouseEvent e)
271
+ {
272
+ }
273
+ @Override
274
+ public void mouseMoved(MouseEvent e)
275
+ {
276
+ }
201
277
  ```

2

修正

2017/05/09 00:44

投稿

toutou
toutou

スコア2052

title CHANGED
File without changes
body CHANGED
@@ -160,13 +160,12 @@
160
160
  {
161
161
  start_x = move_x = e.getX();
162
162
  start_y = move_y = e.getY();
163
- System.out.println(e.getY());
164
163
  }
165
164
  @Override
166
165
  public void mouseReleased(MouseEvent e)
167
- { move_x = -100;//初期位置初期化
166
+ { move_x = -100;
168
167
  move_y = -100;
169
- start_x= -100;//初期位置初期化
168
+ start_x= -100;
170
169
  start_y = -100;
171
170
  }
172
171
  @Override

1

追記

2017/05/08 00:07

投稿

toutou
toutou

スコア2052

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  どうしてもドラックしたときのイベントで連続描写すると隙間が開いてしまいます。forで1ずつ描写してもおかしいです。今のところ横だけのテストなんですがどこがおかしいのかわかりません。アドバイスをお願いします。
2
2
 
3
- ```ここに言語を入力
3
+ ```java
4
4
  import java.awt.BorderLayout;
5
5
  import java.awt.Color;
6
6
  import java.awt.Graphics;
@@ -132,4 +132,71 @@
132
132
  return a-b;
133
133
  }
134
134
  }
135
+ ```
136
+
137
+ 修正部分
138
+ 以下の通りに直しました。
139
+ ```java
140
+ @Override
141
+ public void paintComponent(Graphics g)
142
+ {
143
+ Graphics2D g2 = (Graphics2D)g;
144
+ BasicStroke BStroke = new BasicStroke(5.0f);
145
+ g2.setStroke(BStroke);
146
+ g.setColor(Color.RED);
147
+ if(start_x==-100||start_y== -10||move_x==-100||move_y==-100)
148
+ {
149
+ move_x = -100;
150
+ move_y = -100;
151
+ start_x= -100;
152
+ start_y = -100;
153
+ }
154
+ g.drawLine(start_x, start_y, move_x, move_y);
155
+ start_x = move_x;
156
+ start_y=move_y;
157
+ }
158
+ @Override
159
+ public void mousePressed(MouseEvent e)
160
+ {
161
+ start_x = move_x = e.getX();
162
+ start_y = move_y = e.getY();
163
+ System.out.println(e.getY());
164
+ }
165
+ @Override
166
+ public void mouseReleased(MouseEvent e)
167
+ { move_x = -100;//初期位置初期化
168
+ move_y = -100;
169
+ start_x= -100;//初期位置初期化
170
+ start_y = -100;
171
+ }
172
+ @Override
173
+ public void mouseDragged(MouseEvent e)
174
+ {
175
+ move_x = e.getX();
176
+ move_y = e.getY();
177
+ repaint();
178
+ }
179
+ @Override
180
+ public void mouseClicked(MouseEvent e)
181
+ {
182
+ }
183
+ @Override
184
+ public void mouseEntered(MouseEvent e)
185
+ {
186
+ start_x = move_x = e.getX();
187
+ start_y = move_y = e.getY();
188
+ }
189
+ @Override
190
+ public void mouseExited(MouseEvent e)
191
+ {
192
+ move_x = -100;
193
+ move_y = -100;
194
+ start_x= -100;
195
+ start_y = -100;
196
+ }
197
+ @Override
198
+ public void mouseMoved(MouseEvent e)
199
+ {
200
+ }
201
+ }
135
202
  ```