gpt4 book ai didi

java - 向 JPanel 添加图形时遇到问题

转载 作者:行者123 更新时间:2023-12-01 23:49:36 26 4
gpt4 key购买 nike

我在网上查过,但我仍然无法理解如何向 JPanel 添加图形

这是我的面板类的代码:

public class GamePanel extends JPanel {

public GamePanel(){

}

public void paintComponent(Graphics g) {

g.drawString("asd", 5, 5);
}

}

我的主要方法:

public static void main(String[] args) {

frame.setLayout(new FlowLayout());
frame.getContentPane().setBackground(Color.WHITE);

//i is an instance of GamePanel
frame.add(i);

frame.setPreferredSize(new Dimension(500, 500));
frame.pack();
frame.setVisible(true);

}

文本只会出现在屏幕的很小一部分中(这适用于我尝试绘制的任何图形对象)。我做错了什么?

最佳答案

FlowLayout 尊重组件的首选大小。因此,重写 getPreferredSize 为您的 JPanel 提供可见尺寸,而不是调用 JFrame#pack 后面板当前具有的默认零尺寸尺寸:

class GamePanel extends JPanel {

public void paintComponent(Graphics g) {
super.paintComponent(g); // added to paint child components
g.drawString("asd", 5, 20);
}

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

编辑:

要消除 JPanel 与其包含的 JFrame 之间的间隙,请将垂直间隙设置为 0:

frame.setLayout(new FlowLayout(FlowLayout.CENTER, 0, 0));

关于java - 向 JPanel 添加图形时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16502216/

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