在图形用户界面,设置三个按钮,分别可以将背景颜色设置红色、绿色、蓝色。
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);
}
}
}
}
Main:
package com.itheima;
public class Main {
public static void main(String[] args) {
MyFrame myFrame = new MyFrame();
myFrame.setBounds(100,100,280,150);
myFrame.setTitle("内部类的简单应用");
}
}
内部类的好处就是可以直接使用外部类定义的属性和方法,即使它们是私有的,有点C++友元类的味道。