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(...);
}
};
我可以按需覆盖方法吗?我有一个 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(...);
}
};