package javawork;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class CustomPanelTest extends JFrame{
private JPanel buttonPanel;
private CustomPanel myPanel;
private JButton circleButton,squareButton;
public CustomPanelTest()
{
super("创建定制Jpanel类");
myPanel=new CustomPanel();
myPanel.setBackground(Color.GREEN);
squareButton=new JButton("画正方形");
squareButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
myPanel.draw(2);
}
}
);
circleButton=new JButton("画圆形");
circleButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
myPanel.draw(1);
}
}
);
buttonPanel=new JPanel();//设置另一个面板存放两个按钮
buttonPanel.setLayout(new GridLayout(1,2));
buttonPanel.add(circleButton);
buttonPanel.add(squareButton);
Container container=getContentPane();
container.add(myPanel,BorderLayout.CENTER);
container.add(buttonPanel,BorderLayout.SOUTH);
setSize(300,150);
setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
package javawork;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class CustomPanel extends JPanel{
private int shape;
public void paintComponent(Graphics g)//重写paintComponent,repaint时调用
{
super.paintComponent(g);
g.setColor(Color.red);
if(shape==1)
g.fillOval(50, 10, 60, 60);
else if(shape==2)
g.fillRect(190, 10, 60, 60);
}
public void draw(int shapeToDraw)
{
this.shape=shapeToDraw;
this.repaint();
}
}
public class mainTest {
public static void main(String args[])
{
CustomPanelTest n=new CustomPanelTest();
}
}