【发布时间】:2011-11-20 14:34:11
【问题描述】:
基本上我已经加载了一张图片,当我点击图片的一部分时,会出现一个矩形(没有填充)。如果我再次单击图像的另一部分,该矩形将再次出现。每次点击都会出现相同的矩形。
到目前为止我有这个代码,现在我不知道如何使图像出现。我的文件目录中的图像。我已经编写了从我的文件目录中获取图像的代码。
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);
}
}
【问题讨论】:
-
你的目标不是很清楚。
-
我点击图像的一部分,出现一个矩形。就是这样。
-
听起来你需要在 init 上加载图像,然后覆盖绘画代码并在那里,从当前标记为可见的图像中 blit 矩形。
-
有点类似。但是,我想要的只是一个没有填充的简单矩形。当我单击图像时,矩形应该出现在图像的顶部。上面的代码已经可以工作了,但是矩形只用于框架,而不是图像。
标签: java swing drawrect paintcomponent mouselistener