기본적으로 이미지가로드되어 있고 이미지의 일부를 클릭하면 채우기가없는 사각형이 나타납니다. 이미지의 다른 부분을 다시 클릭하면 해당 사각형이 다시 한 번 표시됩니다. 클릭 할 때마다 동일한 사각형이 나타납니다.이미지에서 사각형 이동은 어떻게합니까?
지금까지이 코드를 사용했지만 이미지를 표시하는 방법을 모르겠습니다. 내 파일 디렉토리의 이미지. 이미 파일 디렉토리에서 이미지를 가져 오는 코드를 만들었습니다.
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class MP2 extends JPanel implements MouseListener{
JFrame frame;
JPanel panel;
int x = 0;
int y = 0;
String input;
public MP2(){
}
public static void main(String[] args){
JFrame frame = new JFrame();
MP2 panel = new MP2();
panel.addMouseListener(panel);
frame.add(panel);
frame.setSize(200,200);
frame.setVisible(true);
}
public void mouseClicked(MouseEvent event) {
// TODO Auto-generated method stub
this.x = event.getX();
this.y = event.getY();
this.repaint();
input = JOptionPane.showInputDialog("Something pops out");
System.out.println(input);
}
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}
public void paintComponent(Graphics g){
super.paintComponent(g);
// this.setBackground(Color.white); *Sets the bg color of the panel
g.setColor(new Color(255,0,0));
g.drawRect(x, y, 100, 100);
}
}
당신의 목표는 분명하지 않습니다. – mre
이미지의 일부를 클릭하면 사각형이 나타납니다. 그게 전부 야. – alicedimarco
init에서 이미지를로드 한 다음 페인팅 코드를 재정의해야하고 거기에서 현재 표시된 것으로 표시된 이미지의 사각형을 blit해야하는 것처럼 들립니다. – Nerdtron