相关疑难解决方法(0)

Java-如何从JPanel清除图形

我正在创建一个简单的程序,在其中绘制一个黑色椭圆形,然后用鼠标单击。但是,我希望出现一个新的椭圆形,而一个旧的椭圆形消失。我将如何去做呢?我弄乱了在mousePressed方法中插入的removeAll()方法,但是它对我不起作用。removeAll()方法是否甚至适用于此?还是我应该使用其他东西?抱歉,答案很明显,但是我对此还很陌生,正在尝试学习。任何建议将不胜感激。谢谢。

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class PaintPractice extends JPanel implements MouseListener {

    Random rand = new Random(); 
    int x = rand.nextInt(450);
    int y = rand.nextInt(450);

    public PaintPractice(){
        super();
        addMouseListener(this);
    }

    public static void main(String[] args){

        JFrame frame = new JFrame();
        PaintPractice panel = new PaintPractice();

        frame.setSize(500, 500);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(panel);        
    }

    public void paint(Graphics g){
        g.setColor(Color.BLACK);
        g.fillOval(x, y, 50, 50);
    }

    @Override
    public void mousePressed(MouseEvent e) {
        x = …
Run Code Online (Sandbox Code Playgroud)

java swing java-2d jpanel

5
推荐指数
1
解决办法
2万
查看次数

将多个JComponents绘制到一个框架

我试图在同一个窗口上绘制多个汽车对象,但看起来它们正在相互覆盖.

这是我在Car类中重写的paintComponent方法

public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;

    g2.setColor(wheelColor);
    g2.fill(leftWheel);
    g2.fill(rightWheel);
    g2.setColor(bodyColor);
    g2.fill(body);
    g2.fill(cab);
}
Run Code Online (Sandbox Code Playgroud)

在我的Viewer类中:

JFrame f = new JFrame();
initializeFrame(f);

Car x = new Car(100, 100);
Car y = new Car(300, 300);

f.add(x);
f.add(y);
Run Code Online (Sandbox Code Playgroud)

虽然坐标似乎不同,但只绘制了最后一辆车.

有什么建议?谢谢

java graphics user-interface swing paintcomponent

2
推荐指数
2
解决办法
8495
查看次数

强制完全重绘Jpanel Java2D

我的问题是我需要制作一个不断更新的GUI我得到的数据可以从数据库中更改,我在图形区域遇到了一些问题.

好吧我使用Graphics2D的Drawline和Drawstring来打印数据库中的值,这个字符串和行移动并改变值,所以我需要调用repaint(); 用一个计时器让它们在jpanel中运行,问题是repaint(); 在绘画之前没有删除背景中的旧画,但是当我完全调整所有更新时.

我知道一种清除的方法,但背景颜色也消失了,有一种方法可以更新jpanel去除旧画并保持沉闷的背景颜色?

没有更新 完善

将coordenate和标签文本更改为"AXIS Y"后(从计时器自动调用重绘) 在此输入图像描述

谢谢.

java swing awt java-2d graphics2d

2
推荐指数
1
解决办法
711
查看次数