Java: JPanel - Example
// Demo Application of use of JPanel for drawing. -- Fred Swartz
// Modified from applet version 2001-09-09, 2002-02-07
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
///////////////////////////////////////////////////// DemoDrawing2
public class DemoDrawing2 extends JFrame {
//============================================ field variables
DrawingArea left = new DrawingArea();
DrawingArea rite = new DrawingArea();
int flip = 0;
//================================================ Constructor
DemoDrawing2() {
left.setBackground(Color.white);
rite.setBackground(Color.black);
JButton b = new JButton("Press Me");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// When button is pressed, change colors
if (flip == 1) {
left.setMyColor(Color.red);
rite.setMyColor(Color.blue);
flip = 0;
}else{
left.setMyColor(Color.blue);
rite.setMyColor(Color.red);
flip = 1;
}
}
});
// Add components to layout
Container content = this.getContentPane();
content.setLayout(new FlowLayout());
content.add(b );
content.add(left);
content.add(rite);
this.setTitle("Demo Drawing");
this.pack();
}//end constructor
//========================================================= main
public static void main(String[] args) {
JFrame windo = new DemoDrawing2();
windo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
windo.setVisible(true);
}
} //endclass
///////////////////////////////////////////////////////// DrawingArea
class DrawingArea extends JPanel {
//======================================== fields
Color drawColor;
public DrawingArea() {
drawColor = Color.green;
setPreferredSize(new Dimension(100,100));
}//end constructor
//================================================ paintComponent
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(drawColor);
int w = getWidth();
int h = getHeight();
g.drawLine(0, 0, w, h); // upper left to lower right.
g.drawLine(0, h, w, 0); // lower left to upper right.
}
//==================================================== setMyColor
public void setMyColor(Color x) {
drawColor = x;
repaint(); // color changed, must repaint
}
} // endclass