【Java】【类和对象】内部类的简单应用
在图形用户界面,设置三个按钮,分别可以将背景颜色设置红色、绿色、蓝色。
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++友元类的味道。
上一篇:
IDEA上Java项目控制台中文乱码