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中。我以前做过这个,我不记得我错过了什么,也找不到任何在线解决方案。
答案 0 :(得分:1)
我认为您需要退后一步并重新检查可用的教程,从Performing Custom Painting和Painting in AWT and Swing开始,以便更好地了解绘画的实际效果。
你的基本问题是,你似乎有一个“魔法代码”的符号。问问自己,你的paint
方法是什么(以及如何)?
基本上,为了执行自定义绘制,您需要从基于JComponent
的类扩展,覆盖它的paintComponent
方法(调用super.paintComponent
以维护绘制链)并执行定制绘画。
然后,您需要将此组件附加到屏幕上实际显示的内容
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);
}
}
}