Java: 按需覆盖方法

Java: override method on demand

我可以按需覆盖方法吗?我有一个 class 扩展 JFrame 并在里面有一个 JPanel。我想在 JPanel 中画一个圆,但我不想为 JPanel 有一个自己的 class(这样我就可以覆盖 paintComponent)。我的想法是这样的:

public class KugelClient extends JFrame {
 public KugelClient() {
    super("KugelClient");

    JPanel panel = new JPanel();
    panel.paintComponent(Graphics g) { 
      //overriding method here
      g.fillOval(...);
    }
  }

Java 中是否有任何东西可以做这样的事情(例如使用 lambda?)或者我是否已经为面板创建了自己的 class?

您可以使用覆盖的 paintComponent() 方法创建 JPanel 匿名 子类。像这样:

JPanel panel = new JPanel() {
    //overriding method here
    public void paintComponent(Graphics g) {
        g.fillOval(...);
    }
};