Java 2D多面板图形

Java 2D多面板图形,java,swing,graphics,Java,Swing,Graphics,J2D.java: import java.awt.Color; import java.awt.Container; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JFrame; import javax.swing.JPanel; public class J2D extends JFrame { int x, y = 0; public J2D() {

J2D.java

import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class J2D extends JFrame {
    int x, y = 0;

    public J2D() {
        setTitle("2D");
        setSize(613, 253);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
            add(new panel ());
            add(new panel2());
            Thread th = new Thread(){
                @Override
                public void run() {
                    while(true){
                        x++;y++;
                        repaint();
                        try {
                            Thread.sleep(50);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            };
            th.start();
    }


    private class panel extends JPanel{
        public void paintComponent(Graphics g){
            //super.paintComponent(g);
            Graphics2D g2d = (Graphics2D)g;
            g2d.setColor(Color.DARK_GRAY);
            g2d.drawString("Fear", x, y);

        }
    }

    private class panel2 extends JPanel{
        public void paintComponent(Graphics g){
            //super.paintComponent(g);
            Graphics2D g2d = (Graphics2D)g;
            g2d.setColor(Color.RED);
            g2d.drawString("Fear2", x + 15, y);
        }
    }
}

当我运行此代码时,它只显示
Fear2
标签。我需要两个类,想添加两个类,但它如何正确工作?我应该写
paint()
paintComponent()
方法吗?

不要坐着等别人回答你的问题,我建议你花点时间阅读,了解Swing工作原理的基本知识。您可能需要从处理布局管理器的部分开始。您的问题是试图将两个组件添加到BorderLayout的中心。如果要显示多个组件,则需要使用不同的布局maanger或将组件添加到BorderLayout的不同区域。需要在一个面板内绘制自定义渲染的所有部分。在这种情况下,您可能有一个
Label
类,它知道如何以及在何处绘制字符串。自定义组件将有一个
标签
实例的集合,并在请求时将它们全部绘制出来。非常同意@camickr关于阅读教程的观点。