gpt4 book ai didi

java - 如何在 repaint() 之后保持在 Graphics g 中绘制的文本

转载 作者:太空宇宙 更新时间:2023-11-04 07:02:43 24 4
gpt4 key购买 nike

public class Drawing extends JPanel {

int Mouse_x = 0, Mouse_y = 0;

@Override
protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
this.setOpaque(true);
this.setBackground(Color.WHITE);
g2.drawString(Mouse_x + "," + Mouse_y, Mouse_x, Mouse_y);
}
}

如何将此文本保存在框架上,并在需要时清除所有框架。例子: enter image description here

最佳答案

您使用鼠标来获取坐标吗?您可以使用鼠标监听器并使用 mouseClicked 方法(鼠标单击后,它将与您的字符串建立 x,y 坐标。)

public void createDot(int x, int y){
g.drawString(Mouse_x + "," + Mouse_y, x, y);
}

您必须添加 addMouseListener(this); 并实现其方法。我只写了 mouseClicked 方法

public void mouseClicked(MouseEvent e) {
int x = e.getX();
int y = e.getY();

createDot(x,y);

}

protected void paintComponent(Graphics g) {
// TODO Auto-generated method stub
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;

}

并且您的 GUI 在另一种方法中创建:例如

public static void createGUI(){
JFrame frame = new JFrame("My Frame");
JComponent component = new Drawing();
component.setOpaque(true);
frame.add(component);
frame.setSize(600,400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);

}

然后在main方法中运行:

public static void main(String [] args){
createGUI();
}

关于java - 如何在 repaint() 之后保持在 Graphics g 中绘制的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21865040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com