1. Frame类用于JAVA GUI编程,是一个桌面窗口容器。
package com.langtao.base;
import java.awt.*;
public class MyFrame extends Frame {
private static int id = 0;
private int size_x = 0;
private int size_y = 0;
private int location_x = 0;
private int location_y = 0;
private Color color;
public MyFrame(){
}
public MyFrame(int size_x, int size_y,
int location_x, int location_y, Color color) throws HeadlessException {
super("Frame + " + (id++));
setVisible(true);
setBackground(color);
setLocation(location_x, location_y);
setSize(size_x, size_y);
}
}
package com.langtao.base;
import java.awt.*;
public class Application {
public static void main(String[] args) {
MyFrame myFrame1 = new MyFrame(100, 100, 100, 100, Color.BLUE);
MyFrame myFrame2 = new MyFrame(100, 100, 100, 200, Color.GREEN);
MyFrame myFrame3 = new MyFrame(100, 100, 200, 100, Color.RED);
}
}
2. Panel是一个面板,Frame承载Panel,Panel承载其他控件。
package com.langtao.base;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class Application {
public static void main(String[] args) {
MyFrame frame = new MyFrame(300,300,500,500,Color.blue);
MyPanel panel = new MyPanel(50,50,400,400,Color.GREEN);
MyPanel panel1 = new MyPanel(0,0,500,50, Color.GRAY);
frame.setLayout(null);
frame.add(panel);
frame.add(panel1);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.exit(0);
}
});
}
}
package com.langtao.base;
import java.awt.*;
public class MyFrame extends Frame {
private static int id = 0;
private int size_x = 0;
private int size_y = 0;
private int location_x = 0;
private int location_y = 0;
private Color color;
public MyFrame(){
}
public MyFrame(int location_x, int location_y,
int size_x, int size_y, Color color) throws HeadlessException {
super("Frame + " + (id++));
setBackground(color);
setBounds(location_x,location_y,size_x,size_y);
setVisible(true);
}
}
package com.langtao.base;
import java.awt.*;
public class MyPanel extends Panel {
private static int id = 0;
private int size_x = 0;
private int size_y = 0;
private int location_x = 0;
private int location_y = 0;
public MyPanel(){
}
public MyPanel(int location_x, int location_y, int size_x, int size_y, Color color){
super();
setBounds(location_x, location_y, size_x, size_y);
setBackground(color);
setVisible(true);
id++;
}
}
3. Frame 和 Panel的布局:流式布局(FlowLayout),东西南北中布局(BorderLayout),网格布局(GridLayout)。
package com.langtao.base.demo2;
import javax.swing.border.Border;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Application {
public static void main(String[] args) {
Frame frame = new Frame("MyFrame");
Panel panel1 = new Panel();
Panel panel2 = new Panel();
Panel panel3 = new Panel();
Panel panel31 = new Panel();
Panel panel32 = new Panel();
frame.setSize(800, 500);
frame.setLayout(new BorderLayout());
panel1.setBackground(Color.RED);
panel2.setBackground(Color.GREEN);
panel31.setBackground(Color.blue);
panel32.setBackground(Color.cyan);
panel1.setLayout(new GridLayout(2,1));
panel2.setLayout(new GridLayout(2,1));
frame.add(panel1, BorderLayout.EAST);
frame.add(panel2, BorderLayout.WEST);
frame.add(panel3, BorderLayout.CENTER);
Button btn1 = new Button("Button1");
Button btn2 = new Button("Button2");
panel1.add(btn1);
panel1.add(btn2);
Button btn3 = new Button("Button3");
Button btn4 = new Button("Button4");
panel2.add(btn3);
panel2.add(btn4);
panel3.setLayout(new GridLayout(2,1));
panel3.add(panel31);
panel3.add(panel32);
Button btn5 = new Button("Button5");
Button btn6 = new Button("Button6");
panel31.setLayout(new GridLayout(2,1));
panel31.add(btn5);
panel31.add(btn6);
Button btn7 = new Button("Button7");
Button btn8 = new Button("Button8");
Button btn9 = new Button("Button9");
Button btn10 = new Button("Button10");
panel32.setLayout(new GridLayout(2,2));
panel32.add(btn7);
panel32.add(btn8);
panel32.add(btn9);
panel32.add(btn10);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}