gpt4 book ai didi

java - 绘制时JFrame边框弄乱坐标

转载 作者:行者123 更新时间:2023-12-04 05:59:42 25 4
gpt4 key购买 nike

嗨,我有一个小问题。我有一个 JFrameJComponent我用来显示图形。

组件的首选大小是 800x600,我创建了 JFrameJComponent像这样( GC 是组件):

public static void main(String[] args) {

mainframe = new JFrame();
mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainframe.add(GC);
mainframe.pack();
mainframe.setResizable(false);
mainframe.setVisible(true);

}

然后我画这样的图形:
public void paintComponent(final Graphics g)
{
//temp bg
g.setColor(Color.red);
g.fillRect(Global.leftborder, 0, 600, 600);

//code code.....
}

问题是它在组件的按钮上留下了 10 像素的白色,即使
该组件的高度为 600 像素。我意识到这是因为 (0,0) 位于整个窗口的左上角而不是组件上。

有没有办法解决这个问题,而不必每次画东西时都在高度和宽度上添加 10 个像素?

最佳答案

您应该覆盖组件 paintComponent方法而不是框架。这样翻译应该已经正确完成了。

完整示例:

public class Test {
public static void main(String[] args) {

JFrame frame = new JFrame("Test");

frame.add(new TestComponent());

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}

static class TestComponent extends JComponent {
@Override
public Dimension getPreferredSize() {
return new Dimension(800, 600);
}

@Override
protected void paintComponent(Graphics g) {
g.setColor(Color.red);
g.fillRect(10, 0, 600, 600);
}
}
}

关于java - 绘制时JFrame边框弄乱坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9075973/

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