gpt4 book ai didi

java - 如果第一个坐标为 0,0,paint 方法将在 jFrame 外部绘制

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:28 26 4
gpt4 key购买 nike

在这种情况下,第一个坐标应该是 0,0 而不是 8,30。我做错了什么(我正在使用 NetBeans)

import java.awt.Color;
import java.awt.Graphics;
public class TEST extends javax.swing.JFrame {

@Override
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.blue);
g.drawRect(8, 30, 200, 200);
repaint();
}}

最佳答案

JPanel 添加到框架并在其中绘制。框架的坐标包括装饰(标题栏、边框等)。它看起来像这样:

public class Test extends JFrame {
public static void main(String[] args) {
new Test();
}
private Test() {
add(new MyPanel());
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(600, 600);
setVisible(true);
}
private class MyPanel extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.blue);
g.drawRect(8, 30, 200, 200);
}
}
}

此外,不要在 paint(); 中调用 repaint();。这将导致无限循环并卡住整个程序。

关于java - 如果第一个坐标为 0,0,paint 方法将在 jFrame 外部绘制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183529/

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