账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    java内部类问题?
    91
    0

    目的是实现一个具有切换圈圈颜色及标签内容的程序

    package com.elyong.noway;
    
    /**
     * Created by ely ong on 2017/11/27.
     */
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class TwoButtons{
        JFrame frame;
        JLabel label;
        public static void main(String[] args){
            TwoButtons gui=new TwoButtons();
            gui.go();
        }
        public void go(){
            frame=new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
            JButton labelButton=new JButton("Change Label");
            labelButton.addActionListener(new LabelListener());
    
            JButton colorButton=new JButton("Change Circle");
            colorButton.addActionListener(new ColorListener());
    
            label=new JLabel("I'm a label");
            MyDrawPanel drawPanel=new MyDrawPanel();
    
            frame.getContentPane().add(BorderLayout.SOUTH,colorButton);
            frame.getContentPane().add(BorderLayout.CENTER,drawPanel);
            frame.getContentPane().add(BorderLayout.EAST,labelButton);
            frame.getContentPane().add(BorderLayout.WEST,label);
    
            frame.setSize(300,300);
            frame.setVisible(true);
        }
        class LabelListener implements ActionListener{
            public void actionPerformed(ActionListener event){
                label.setText("Ouch!");
            }
        }
        class ColorListener implements ActionListener{
            public void actionPerformed(ActionListener event){
                frame.repaint();
            }
        }
    }
    class MyDrawPanel extends JPanel{
        public void paintComponent(Graphics g){
            Graphics2D g2d=(Graphics2D) g;
            int red=(int)(Math.random()*255);
            int green=(int)(Math.random()*255);
            int blue=(int)(Math.random()*255);
            Color startColor=new Color(red,green,blue);
            red=(int)(Math.random()*255);
            green=(int)(Math.random()*255);
            blue=(int)(Math.random()*255);
            Color endColor=new Color(red,green,blue);
            GradientPaint gradient=new GradientPaint(70,70,startColor,150,150,endColor);
            g2d.setPaint(gradient);
            g2d.fillOval(70,70,100,100);
        }
    }

    报错:

    Error:(32, 5) java: com.elyong.noway.TwoButtons.LabelListener不是抽象的, 并且未覆盖java.awt.event.ActionListener中的抽象方法actionPerformed(java.awt.event.ActionEvent)
    Error:(37, 5) java: com.elyong.noway.TwoButtons.ColorListener不是抽象的, 并且未覆盖java.awt.event.ActionListener中的抽象方法actionPerformed(java.awt.event.ActionEvent)
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 一个人的独白 普通会员 1楼

      Java内部类(Internal classes)是Java程序中的一个类,它是在类的作用域(包或类)中定义的。这种类的名称必须以包名开头。内部类不仅可以定义在当前包中,还可以在子包中定义。

      以下是创建内部类的一些常见方法:

      1. 创建内部类:

      java public class InternalClass { // 定义内部类的成员变量和方法 }

      1. 使用内部类:

      ```java public class Main { public static void main(String[] args) { // 创建内部类的对象 InternalClass innerClass = new InternalClass();

          // 使用内部类的方法
          innerClass.myMethod();
      }
      

      } ```

      1. 使用包中的内部类:

      ```java import java.util.ArrayList;

      public class Main { public static void main(String[] args) { // 创建包中的内部类的对象 ArrayList internalClasses = new ArrayList<>();

          // 添加内部类对象到包中的内部类列表中
          internalClasses.add(new InternalClass());
      
          // 使用包中的内部类的方法
          for (InternalClass innerClass : internalClasses) {
              innerClass.myMethod();
          }
      }
      

      } ```

      注意:内部类不能有继承关系。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部