【发布时间】:2021-06-11 02:02:13
【问题描述】:
我有一个项目,我需要在 Java 中创建一个 GUI,该 GUI 在鼠标单击时创建一个圆圈,并在鼠标拖过框架时继续制作尾随圆圈。我在这里得到了多个线程的参考,但似乎没有一个可以帮助我做我需要做的事情。到目前为止,我的 JFrame 中添加了一个静态圆圈,但我想让多个圆圈显示在该框架中的 JPanel 上。在尝试了许多不同的角度后,我被卡住了。到目前为止,我只需要能够单击一次并创建一个圆圈。
public class Theremin extends JFrame implements ActionListener, MouseListener{
private JPanel windowArea;
private int x, y;
private static final long serialVersionUID = 1L;
public Theremin() {
}
public static void main(String[] args) {
Theremin Frame = new Theremin();
Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyPanel panel = new MyPanel();
panel.setLayout(null);
Frame.add(panel);
Frame.pack();
Frame.setLocationRelativeTo(null);
Frame.setVisible(true);
}
private static class MyPanel extends JPanel {
public void paint(Graphics g) {
Graphics2D gObj = (Graphics2D)g;
Shape disk = new Ellipse2D.Double(10, 10, 100, 100);
gObj.setColor(new Color(255, 0, 0, 120));
gObj.fill(disk);
}
@Override
public Dimension getPreferredSize() {
return new Dimension(700, 600);
}
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
x = e.getX();
y = e.getY();
repaint();
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
【问题讨论】:
标签: java swing jpanel repaint mouselistener