gpt4 book ai didi

java - 摆弄 Java Graphics,这工作_一次_

转载 作者:行者123 更新时间:2023-12-02 05:34:29 26 4
gpt4 key购买 nike

我试图更直接地在 JPanel 上绘图,因此使用以下代码:

import java.awt.*;
import javax.swing.*;
import java.awt.geom.*;
public class px{
JFrame F=new JFrame();
JPanel P=new JPanel();
public px(){
P.setPreferredSize(new Dimension(400,300));
F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
F.add(P);
F.pack();
F.setResizable(false);
F.setVisible(true);
}
public void sq(int x,int y,int c){
Graphics2D G=(Graphics2D)P.getGraphics();
G.setPaint(Color.red);
G.fill(new Rectangle(x*10,y*10,10,10));
P.paint(P.getGraphics());
F.revalidate();
}
public static void main (String[]args){
px X=new px();
X.sq(1,1,0);
}
}

但是该死的小红方 block 只出现过一次,可能是运行时错误或编译失败。

最佳答案

  • 重写JPanelpaintComponent()方法进行自定义绘制,您可以在其中获取Graphics对象作为方法参数。

  • 不要忘记在重写的 paintComponent() 方法中调用 super.paintComponent()

  • 重写 getPreferredSize() 以设置自定义绘画时 JPanel 的首选大小。

For more info read Lesson: Performing Custom Painting and try sample code as well.

注意:遵循 Java 命名约定。

示例代码:

class MyPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
...
// custom painting code goes here
}

@Override
public Dimension getPreferredSize() {
return new Dimension(..., ...);
}
}

关于java - 摆弄 Java Graphics,这工作_一次_,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25145454/

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