求代码解答!
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Third
{
public static void main(String[] args)
{
MyFrame frame=new MyFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
}
class MyFrame extends JFrame
{
public MyFrame()
{
setSize(800,800);
setTitle("MyAction");
Container con=getContentPane();
MyPanel panel=new MyPanel();
con.add(panel);
}
}
class MyPanel extends JPanel
{
public MyPanel()
{
JButton yellowButton=new JButton("Yellow");
JButton blueButton=new JButton(new ImageIcon("arg.gif"));
JButton redButton=new JButton("Red");
add(yellowButton);
add(blueButton);
add(redButton);
ColorAction yellowAction=new ColorAction(Color.YELLOW);
ColorAction blueAction=new ColorAction(Color.BLUE);
ColorAction redAction=new ColorAction(Color.RED);
yellowButton.addActionListener(yellowAction);
blueButton.addActionListener(blueAction);
redButton.addActionListener(redAction);
}
}
class ColorAction implements ActionListener
{
public ColorAction(Color c,);
{
cor=c;
}
public void actionPerformed(ActionEvent event)
{
MyPanel panel=new MyPanel();
panel.setBackground(cor);
}
private Color cor;
}
这个程序的问题是破坏了ColorAction的封装吧?要实现同样的目标应该怎样修改此程序呢?谢谢!