58,454
社区成员
发帖
与我相关
我的任务
分享
if(enforc == true){
image = new Image(display, compositeImage.getClientArea().width,
compositeImage.getClientArea().height);
image.type = SWT.BITMAP;
r_gc = new GC(image);
int min_x = table_min_x;
int max_y = table_max_y;
// 画图开始位置
for (int i = 0; i < LIST_R_SIZE; i++) {
r_coordinate_x = (file_r_x[i] - table_min_x) / drawpictureRate_x
+ pictureBegin_x;
r_coordinate_y = (drawpictureRate_y * picture_h - file_r_y[i] + table_max_y)
/ drawpictureRate_y - (picture_h - pictureBegin_y);
r_gc.setForeground(display.getSystemColor(SWT.COLOR_BLUE));
r_gc.drawOval(r_coordinate_x, r_coordinate_y, diameter, diameter);
}
for (int i = 0; i < LIST_S_SIZE; i++) {
s_coordinate_x = (file_s_x[i] - table_min_x) / drawpictureRate_x
+ pictureBegin_x;
s_coordinate_y = (drawpictureRate_y * picture_h - file_s_y[i] + table_max_y)
/ drawpictureRate_y - (picture_h - pictureBegin_y);
r_gc.setForeground(display.getSystemColor(SWT.COLOR_RED));
r_gc.drawLine(s_coordinate_x, s_coordinate_y - s_length,
s_coordinate_x, s_coordinate_y + s_length);
r_gc.drawLine(s_coordinate_x - s_length, s_coordinate_y,
s_coordinate_x + s_length, s_coordinate_y);
}
// 竖线
picture_table_min_x = (table_min_x - table_min_x) / drawpictureRate_x
+ pictureBegin_x;
picture_table_max_x = (table_max_x - table_min_x) / drawpictureRate_x
+ pictureBegin_x;
picture_table_max_y = (drawpictureRate_y * picture_h - table_min_y + table_max_y)
/ drawpictureRate_y - (picture_h - pictureBegin_y);
picture_table_min_y = (drawpictureRate_y * picture_h - table_max_y + table_max_y)
/ drawpictureRate_y - (picture_h - pictureBegin_y);
for (int i = 0; i < table_width_line; i++) {
picture_table_min_x = (min_x - table_min_x) / drawpictureRate_x
+ pictureBegin_x;
r_gc.setAlpha(35); // 透明度
r_gc.drawLine(picture_table_min_x, picture_table_min_y,
picture_table_min_x, picture_table_max_y);
min_x += table_scale_w;
}
// 横线
picture_table_min_x = (table_min_x - table_min_x) / drawpictureRate_x
+ pictureBegin_x;
for (int i = 0; i < table_height_line; i++) {
picture_table_min_y = (drawpictureRate_y * picture_h - max_y + table_max_y)
/ drawpictureRate_y - (picture_h - pictureBegin_y);
r_gc.setAlpha(35); // 透明度
r_gc.drawLine(picture_table_min_x, picture_table_min_y,
picture_table_max_x, picture_table_min_y);
max_y -= table_scale_h;
}
r_gc.copyArea(image, 0, 0);
r_gc.drawImage(image, 0, 0);
r_gc.dispose();
compositeImage.setBackgroundImage(image);
enforc = false;
}
Exception in thread "main" org.eclipse.swt.SWTError: No more handles
at org.eclipse.swt.SWT.error(SWT.java:3589)
at org.eclipse.swt.graphics.Image.init(Image.java:1577)
at org.eclipse.swt.graphics.Image.<init>(Image.java:174)
at new_picture.Draw3D.drawPicture3D(Draw3D.java:520)
at new_picture.Draw3D.magnify(Draw3D.java:871)
at new_picture.Interface$10.widgetSelected(Interface.java:318)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
at new_picture.Interface.main(Interface.java:360)