gpt4 book ai didi

JAVA,在框架中以增加的字体大小显示短语

转载 作者:行者123 更新时间:2023-12-01 11:23:02 25 4
gpt4 key购买 nike

我在使此代码正常运行时遇到问题。它会编译并且最初框架会正确显示。问题是,当我通过最大化或拖动框架的一侧来手动调整框架大小时,文本消失了。我正在使用 jGRASP,不确定这是否是问题所在。该代码对我来说似乎很有意义,并且正如我所说,它可以编译(我知道这并不一定是正确的)。我在这方面仍然是新手,所以如果有人能指出我正确的方向,我将非常感激。

import javax.swing.*;
import java.awt.*;

public class JFontSizes extends JFrame {
int x = 5;
int y = 50;
String homework = "This is the first homework assignment";
public JFontSizes() {
super("Increasing Font Sizes");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics brush) {
super.paint(brush);
// This works sometimes. I am not sure if it is a jGRASP issue or something else.
// If I resize the frame, the text disappears, and I cannot get the text to start at the top of the frame
for(int n = 6; n<= 20; ++n) {
brush.setFont(new Font("Serif", Font.PLAIN, n));
brush.drawString(homework, x, y);
y += 15;
}
}
public static void main(String[] args) {
JFontSizes frame = new JFontSizes();
frame.setSize(400, 500);
frame.setVisible(true);
}
}

最佳答案

第一次调用paint()时,y的值为5。并且它在循环中递增。因此,在离开 Paint() 之前,其值将为 275。

但是当你调整框架大小时,paint() 会再次被调用,这次 y 的值为 275,并且当 brush.drawString(homework, x, y); 被调用时 作业 打印在距左上角 275px 底部。

所以你需要做的是每次重新初始化 y :

public void paint(Graphics brush) {
y = 50;
....

编辑:
正如 camickr 评论的您应该重写 paintComponent(...) 而不是 paint(...),直到您有某些特定原因需要重写 Paint()。
你的意思是你无法在顶部打印文本(即使在开始时),那是因为你用 50 初始化了 y。这意味着文本将在距离顶部 50px 处绘制。

关于JAVA,在框架中以增加的字体大小显示短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31039315/

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