gpt4 book ai didi

java - 为什么drawString没有出现在JFrame GUI中?

转载 作者:行者123 更新时间:2023-11-30 06:16:52 27 4
gpt4 key购买 nike

package me.tykutcher.text.gui;

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JFrame;

public class textGui {

public void paint(Graphics g){
g.setColor(Color.BLACK);
g.drawString("String", 50, 50);
g.setColor(Color.RED);
}

public static void main(String[] args){
JFrame frame = new JFrame();
frame.setSize(1080, 1080);
frame.setTitle("Loading... ");
frame.setVisible(true);
}



}

我不明白为什么drawSting("String);没有显示在GUI中。我以前做过这个,但我不记得我错过了什么,也无法在网上找到任何解决方案。

最佳答案

我认为您需要退一步并重新检查可用的教程,从 Performing Custom Painting 开始和 Painting in AWT and Swing更好地理解绘画的实际工作原理。

你的基本问题是,你似乎有一个“魔法代码”的符号。问问自己,什么将调用您的 paint 方法(以及如何调用)?

基本上,为了执行自定义绘画,您需要从基于 JComponent 的类进行扩展,重写它的 paintComponent 方法(调用 super.paintComponent code> 维护绘画链)并执行您的自定义绘画。

然后您需要将此组件附加到屏幕上实际显示的内容

Magic

import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Test {

public static void main(String[] args) {
new Test();
}

public Test() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("Test");
frame.add(new TestPane());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}

public class TestPane extends JPanel {

@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("String", 50, 50);
g.setColor(Color.RED);
}

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

}

}

关于java - 为什么drawString没有出现在JFrame GUI中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49000354/

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