Java drawString未在窗口上绘制文本
我试图创建一个带有文本的测试窗口,当我运行代码时,它不会绘制字符串。我指定了它的颜色。有人能帮我吗Java drawString未在窗口上绘制文本,java,string,swing,window,Java,String,Swing,Window,我试图创建一个带有文本的测试窗口,当我运行代码时,它不会绘制字符串。我指定了它的颜色。有人能帮我吗 您应该重写JPanel的paintComponent方法,而不是它的paintComponents方法,因为它们有两个截然不同的用途。第一种方法绘制组件本身(您想要的),而第二种方法获取此父级持有的子组件来绘制它们自己 还请记住更改超级调用以使其匹配,并使用方法上方的@Override注释。您应该重写JPanel的paintComponent方法,而不是其paintComponents方法,因为
您应该重写JPanel的
paintComponent
方法,而不是它的paintComponents
方法,因为它们有两个截然不同的用途。第一种方法绘制组件本身(您想要的),而第二种方法获取此父级持有的子组件来绘制它们自己
还请记住更改超级调用以使其匹配,并使用方法上方的
@Override
注释。您应该重写JPanel的paintComponent
方法,而不是其paintComponents
方法,因为它们有两个截然不同的用途。第一种方法绘制组件本身(您想要的),而第二种方法获取此父级持有的子组件来绘制它们自己
还要记住更改超级调用以使其匹配,并使用方法上方的@Override
注释
import javax.swing.*;
import java.awt.*;
class Main
{
public static void main(String[] args) {
DrawFrame f = new DrawFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
class DrawFrame extends JFrame
{
public DrawFrame(){
setTitle("For Aylin");
setSize(1280,720);
DrawPanel panel = new DrawPanel();
Container cp = getContentPane();
cp.add(panel);
}
}
class DrawPanel extends JPanel
{
public void paintComponents(Graphics g)
{
super.paintComponents(g);
g.setColor(Color.darkGray);
g.drawString("Hi", 100, 10);
}
}