[Java] [Classe e Objeto] Aplicação simples de classes internas

Na interface gráfica do usuário, defina três botões para definir a cor de fundo como vermelho, verde e azul, respectivamente.

Insira a descrição da imagem aqui

Myframe:

package com.itheima;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class MyFrame extends JFrame{
    
    
    JButton RedButton,GreenButton,BlueButton;
    ColorAction colorAction;
    public MyFrame() {
    
    
        init();
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    void init(){
    
    
        setLayout(new FlowLayout());
        RedButton = new JButton("红色");
        GreenButton = new JButton("绿色");
        BlueButton = new JButton("蓝色");
        add(RedButton);
        add(GreenButton);
        add(BlueButton);
        colorAction = new ColorAction();
        RedButton.addActionListener(colorAction);
        GreenButton.addActionListener(colorAction);
        BlueButton.addActionListener(colorAction);



    }
    private class ColorAction implements ActionListener{
    
    
        @Override
        public void actionPerformed(ActionEvent e) {
    
    
            Container contentPane = getContentPane();
            if(e.getSource() == RedButton){
    
    
                contentPane.setBackground(Color.RED);
            }
            if(e.getSource() == GreenButton){
    
    
                contentPane.setBackground(Color.GREEN);
            }
            if(e.getSource() == BlueButton){
    
    
                contentPane.setBackground(Color.BLUE);
            }
        }
    }

}

A Principal:

package com.itheima;
public class Main {
    
    
    public static void main(String[] args) {
    
    
        MyFrame myFrame = new MyFrame();
        myFrame.setBounds(100,100,280,150);
        myFrame.setTitle("内部类的简单应用");

    }
}

Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
Insira a descrição da imagem aqui
A vantagem da classe interna é que você pode usar diretamente as propriedades e métodos definidos pela classe externa, mesmo se eles forem privados, um pouco como uma classe amiga C ++.

Acho que você gosta

Origin blog.csdn.net/weixin_48180029/article/details/112062704
Recomendado
Clasificación