Frame 和 Panel

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);
}
});

}
}

posted @ 2020-12-06 20:37  浪淘  阅读(396)  评论(0)    收藏  举报