Q

  • タグ:
  • タグはありません
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.TexturePaint;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Search extends PicSave {
private int x1=0;
private int y1=0;
private int w1=0;
private int h1=0;
Search(){
x1 = 0;
}
public void SetVal(int p1){
x1 = p1;
}
JFrame frame;
JPanel container;
CanvasPane canvas;
Point pt_from, pt_to;
static final Point nullpoint = new Point(-1, -1);
Search (String title) {
/*
* GUI
*/
frame = new JFrame(title);
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
container = (JPanel) frame.getContentPane();
/*
* 使
*/
pt_from = new Point(nullpoint);
pt_to = new Point(nullpoint);
canvas = new CanvasPane();
MouseAdapter madp = new SelectiongMouseListener();
canvas.addMouseListener(madp);
canvas.addMouseMotionListener(madp);
container.add(canvas);
frame.setVisible(true);
/*
* 50
*/
Timer timer = new Timer();
timer.scheduleAtFixedRate(new FrameDrawer(), 0, 50);
}
class CanvasPane extends JPanel {
BufferedImage image;
TexturePaint tp;
Color pale = new Color(0, 0, 255, 110);
Color transparent = new Color(0, 0, 0, 0);
CanvasPane () {
super();
this.setBackground(Color.white);
this.setOpaque(true);
/*
*
*
*/
int len = 50;
image = new BufferedImage(len, len, BufferedImage.TYPE_INT_ARGB);
Graphics2D gbi = image.createGraphics();
gbi.setColor(transparent);
gbi.fillRect(0, 0, len, len );
gbi.setColor(pale);
int unit = len / 2;
for (int i = 0; i < 2; i++) {
gbi.fillRect(unit * i, unit * i, unit, unit);
}
Rectangle rect = new Rectangle(0, 0, len, len );
tp = new TexturePaint(image, rect);
}
public void paintComponent (Graphics g) {
super.paintComponent(g); //
Graphics2D g2 = (Graphics2D)g;
//
BufferedImage readImage = null;
try {
readImage = ImageIO.read(new File("10.jpg"));
} catch (Exception e) {
e.printStackTrace();
readImage = null;
}
if (readImage != null){
g2.drawImage(readImage, 0, 0, this);
}
if (!pt_from.equals(nullpoint) && !pt_to.equals(nullpoint) ) {
/*
* mousePressed
* mouseMoved
*/
int x = Math.min(pt_from.x, pt_to.x);
int y = Math.min(pt_from.y, pt_to.y);
int w = Math.abs(pt_to.x - pt_from.x);
int h = Math.abs(pt_to.y - pt_from.y);
//g2.setPaint(tp);
//g2.fillRect(x, y, w, h); //
g2.setColor(Color.red);
for (int i = 0; i < 2; i++) { //3
g2.drawRect(x + i, y + i, w - 2 * i, h - 2 * i);
//xy
x1=x+i;
y1=y+i;
w1=w-2*i;
h1=h-2*i;
System.out.println("1"+x1);
return x1;
}
}
}
}
public int GetVal(){
System.out.println("GetVal"+x1);
return x1;
}
class SelectiongMouseListener extends MouseAdapter {
@Override
public void mousePressed (MouseEvent ev) {
pt_from.setLocation(ev.getPoint() );
}
@Override
public void mouseReleased (MouseEvent ev) {
System.out.println("x="+x1+"y="+y1+"="+ w1+"="+h1);
//pt_from.setLocation(nullpoint);
//pt_to.setLocation(nullpoint);
PicSave save;
save = new PicSave();
save.doCapture();
}
@Override
public void mouseDragged (MouseEvent ev) {
pt_to.setLocation(ev.getPoint() );
}
}
class FrameDrawer extends TimerTask { //50
@Override
public void run() {
canvas.repaint();
}
}
public static void main(String[] args) {
new Search("Search");
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX