Java 为什么drawString没有出现在JFrame GUI中?
我不明白为什么绘图(“字符串”)没有显示在GUI中。我以前做过这件事,我记不起我遗漏了什么,也找不到任何在线解决方案。我认为您需要后退一步,重新检查可用的教程,从开始并更好地了解绘画的实际工作原理 你的基本问题是,你似乎有一个“魔法代码”的符号。问问你自己,你的Java 为什么drawString没有出现在JFrame GUI中?,java,jframe,Java,Jframe,我不明白为什么绘图(“字符串”)没有显示在GUI中。我以前做过这件事,我记不起我遗漏了什么,也找不到任何在线解决方案。我认为您需要后退一步,重新检查可用的教程,从开始并更好地了解绘画的实际工作原理 你的基本问题是,你似乎有一个“魔法代码”的符号。问问你自己,你的paint方法(以及如何)叫什么 基本上,为了执行自定义绘制,您需要从基于JComponent的类扩展,重写它的paintComponent方法(调用super.paintComponent以维护绘制链)并执行自定义绘制 然后需要将此组件
paint
方法(以及如何)叫什么
基本上,为了执行自定义绘制,您需要从基于JComponent
的类扩展,重写它的paintComponent
方法(调用super.paintComponent
以维护绘制链)并执行自定义绘制
然后需要将此组件附加到屏幕上实际显示的内容
将
@Override
添加到绘制
上方,然后查看所需内容get@MadProgrammer如果他不延长期限,他为什么要超限anything@JacobB.准确地说,他应该创建一个扩展JPanel或JFrame或其他内容的类,然后添加paint()或paintComponent()方法。是的,这就是我在上面的评论@JacobB中所说的。我的目的是试图让OP意识到,仅仅有一个绘制
方法并不能使某些东西可以绘制-对于最近的许多问题,可以使用@override
来验证他们自己的意图;)是的,是有意义的。我喜欢e被动攻击式教学思想@JacobB。如果你想用头撞它,我有一块多余的砖头
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);
}
}
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);
}
}
}