窗体Frame基础设置
import java.awt.*;
public class TestFrame1 {
public static void main(String[] args) {
Frame frame=new Frame("LQD");
frame.setVisible(true);//设置窗口的可见性
frame.setResizable(true);//设置窗口是否可调节大小
frame.setSize(400,400);//设置窗口大小
frame.setBackground(new Color(146, 181, 215));//背景颜色设置
frame.setLocation(200,200);//窗口弹出位置设置
}
}
窗体Frame的封装
import java.awt.*;
public class TestFrame2 {
public static void main(String[] args) {
MyFrame myFrame1=new MyFrame(100,100,200,200,Color.blue);
MyFrame myFrame2=new MyFrame(300,100,200,200,Color.yellow);
MyFrame myFrame3=new MyFrame(300,300,200,200,Color.BLACK);
MyFrame myFrame4 = new MyFrame(100, 200, 300, 400, Color.BLACK);
}
static class MyFrame extends Frame{//封装继承Frame类,这部分要注意静态部分 static class 和static int 需要保持一致
static int id=0;
public MyFrame(int x,int y,int w,int h,Color color)
{
super("MyFrame"+(++id));
setVisible(true);
setBounds(x,y,w,h);
setBackground(color);
}
}
}
面板Panel基础设置
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class TestPanel1 {
public static void main(String[] args) {
Frame frame = new Frame();
Panel panel = new Panel();
//设置布局
frame.setLayout(null);
frame.setBounds(300,300,500,500);
frame.setBackground(new Color(7, 226, 245));
//Panel设置坐标,相对于frame
panel.setBounds(50,50,400,400);
panel.setBackground(new Color(34, 109, 184));
//frame add(panel)
frame.add(panel);
frame.setVisible(true);
//监听事件 监听窗口关闭事件 System.exit(0)
//适配器模式 windowsAdapter;也可以使用Windowslistener,但是重写的内容太多,为了简化和便于管理,使用更为方便的WindowsAdapter
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭时需要做的事情
@Override
public void windowClosing(WindowEvent e) {
//super.windowClosing(e);
System.exit(0);
}
});
}
}
布局管理器
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class TestPanel1 {
public static void main(String[] args) {
Frame frame = new Frame();
Panel panel = new Panel();
//设置布局
frame.setLayout(null);//流式布局 东西南北中 表格布局
frame.setBounds(300,300,500,500);
frame.setBackground(new Color(7, 226, 245));
//Panel设置坐标,相对于frame
panel.setBounds(50,50,400,400);
panel.setBackground(new Color(34, 109, 184));
//frame add(panel)
frame.add(panel);
frame.setVisible(true);
//按钮组件
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
frame.setLayout(new FlowLayout(FlowLayout.LEFT));//设置为流式布局
frame.setSize(200,200);
frame.add(button1);
frame.add(button2);
frame.add(button3);
//监听事件 监听窗口关闭事件 System.exit(0)
//适配器模式;
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭时需要做的事情
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
三种布局方式
1,流式布局 FlowLayout
2,东西南北中布局
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class TestPanel1 {
public static void main(String[] args) {
Frame frame = new Frame();
//Panel panel = new Panel();
//设置布局
frame.setLayout(null);//流式布局 东西南北中 表格布局
frame.setBounds(300,300,500,500);
frame.setBackground(new Color(7, 226, 245));
//Panel设置坐标,相对于frame
/*panel.setBounds(50,50,400,400);
panel.setBackground(new Color(34, 109, 184));
//frame add(panel)
frame.add(panel);*/
//按钮组件
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
Button button4 = new Button("button4");
Button button5 = new Button("button5");
frame.setLayout(new BorderLayout());//设置布局方式
frame.setSize(200,200);
frame.add(button1,BorderLayout.EAST);
frame.add(button2,BorderLayout.WEST);
frame.add(button3,BorderLayout.SOUTH);
frame.add(button4,BorderLayout.NORTH);
frame.add(button5,BorderLayout.CENTER);
frame.setVisible(true);
//监听事件 监听窗口关闭事件 System.exit(0)
//适配器模式;
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭时需要做的事情
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
3,表格布局Grid
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public class TestPanel1 {
public static void main(String[] args) {
Frame frame = new Frame();
//Panel panel = new Panel();
//设置布局
frame.setLayout(null);//流式布局 东西南北中 表格布局
frame.setBounds(300,300,500,500);
frame.setBackground(new Color(7, 226, 245));
//Panel设置坐标,相对于frame
/*panel.setBounds(50,50,400,400);
panel.setBackground(new Color(34, 109, 184));
//frame add(panel)
frame.add(panel);*/
//按钮组件
Button button1 = new Button("button1");
Button button2 = new Button("button2");
Button button3 = new Button("button3");
Button button4 = new Button("button4");
Button button5 = new Button("button5");
frame.setLayout(new GridLayout(2,3));//设置布局方式
frame.setSize(200,200);
frame.add(button1);
frame.add(button2);
frame.add(button3);
frame.add(button4);
frame.add(button5);
frame.pack();//Java的函数,自动选择一个最优布局方式
frame.setVisible(true);
//监听事件 监听窗口关闭事件 System.exit(0)
//适配器模式;
frame.addWindowListener(new WindowAdapter() {
//窗口点击关闭时需要做的事情
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
设计部分(使用panel嵌套方法)
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class exercise {
public static void main(String[] args) {
Frame frame = new Frame();
frame.pack();
frame.setSize(600,600);
frame.setLayout(new BorderLayout());
Panel panel1 = new Panel();
Panel panel2 = new Panel();
Panel panel3 = new Panel();
frame.add(panel1,BorderLayout.WEST);
frame.add(panel2,BorderLayout.CENTER);
frame.add(panel3,BorderLayout.EAST);
Panel panelup = new Panel();
Panel paneldown = new Panel();
panel2.setLayout(new GridLayout(2,1));
panel2.add(panelup);
panel2.add(paneldown);
panelup.setLayout(new GridLayout(2,1));
paneldown.setLayout(new GridLayout(2,2));
Button button1 = new Button("but1");
Button button2 = new Button("but2");
Button button3 = new Button("but3");
Button button4 = new Button("but4");
Button button5 = new Button("but5");
Button button6 = new Button("but6");
Button button7 = new Button("but7");
Button button8 = new Button("but8");
Button button9 = new Button("but9");
Button button10 = new Button("but10");
panel1.setLayout(new GridLayout(2,1));
panel1.add(button1);
panel1.add(button2);
panel3.setLayout(new GridLayout(2,1));
panel3.add(button3);
panel3.add(button4);
panelup.add(button5);
panelup.add(button6);
paneldown.add(button7);
paneldown.add(button8);
paneldown.add(button9);
paneldown.add(button10);
frame.setVisible(true);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}