Java基础
GUI编程
核心技术:Swing、AWT
现在GUI并不流行 因为其界面不美观、需要依赖jre环境
AWT
frame的使用
/**
* frame的使用
* @author xue
*/
public class Demo1 {
public static void main(String[] args) {
//创建frame对象
Frame fm1 = new Frame("第一个界面窗口");
fm1.setVisible(true);//设置可见性
fm1.setSize(500,500);//设置窗口大小
fm1.setBackground(new Color(24, 129, 148));//设置背景颜色
fm1.setLocation(400,400);//设置位置 0,0在屏幕的左上角处
fm1.setResizable(false); //设置窗口大小不可改变
}
}
public class Demo2 {
public static void main(String[] args) {
new MyFrame(100,100,100,100,Color.BLACK);
new MyFrame(200,100,100,100,Color.BLACK);
}
}
class MyFrame extends Frame{
static int id = 0; //窗口计数器
public MyFrame(int x,int y,int w,int h,Color co) {
super("窗口"+(++id));
setVisible(true);
setBounds(x,y,w,h);
setBackground(co);
}
}
Panel的使用 并添加关闭窗口监听事件
/**
* Panel的使用
* Panel是一个空间 不能单独存在
* @author xue
*/
public class Demo3 {
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(Color.CYAN);//窗口背景颜色
panel.setBounds(50,50,200,200);//设置面板位置、大小
panel.setBackground(Color.GRAY);
frame.add(panel);//将面板放入窗口中
frame.setVisible(true);
//添加监听事件
frame.addWindowListener(new WindowAdapter() {
//点击窗口关闭按钮事件
@Override
public void windowClosing(WindowEvent e) {
//退出程序
System.exit(0);
}
});
}
}
布局管理器
-
流式布局
-
东西南北中
-
表格式
public class Demo4 { public static void main(String[] args) { Frame frame = new Frame("表格布局"); Button but1 = new Button("bu1"); but1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); Button but2 = new Button("bu2"); Button but3 = new Button("bu3"); Button but4 = new Button("bu4"); Button but5 = new Button("bu5"); Button but6 = new Button("bu6"); frame.setLayout(new GridLayout(2,3)); frame.add(but1); frame.add(but2); frame.add(but3); frame.add(but4); frame.add(but5); frame.add(but6); frame.setBounds(500,500,500,500); frame.setVisible(true); } //流式布局 public void testLayout(){ Frame frame = new Frame("流式布局的操作"); //创建按钮组件 Button butt1 = new Button("bu1"); Button butt2 = new Button("bu2"); Button butt3 = new Button("bu3"); //设置流式布局 // frame.setLayout(new FlowLayout());//指的是组件在窗口中的布局默认居中FlowLayout.CENTER // frame.setLayout(new FlowLayout(FlowLayout.RIGHT));//按钮靠右 // frame.setLayout(new FlowLayout(FlowLayout.LEFT));//按钮靠左 // frame.setLayout(new FlowLayout(FlowLayout.LEADING));//从开始的方向对齐 同靠左 // frame.setLayout(new FlowLayout(FlowLayout.TRAILING));//从结束的方向对齐 同靠右 //东西南北中 frame.setSize(300,300); frame.setVisible(true); //添加按钮至窗口 frame.add(butt1); frame.add(butt2); frame.add(butt3); frame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); } //东西南北中 public void testLayout2() { Frame frame = new Frame("东西南北中"); Button but1 = new Button("east"); Button but2 = new Button("west"); Button but3 = new Button("south"); Button but4 = new Button("north"); Button but5 = new Button("centor"); frame.add(but1,BorderLayout.EAST); frame.add(but2,BorderLayout.WEST); frame.add(but3,BorderLayout.SOUTH); frame.add(but4,BorderLayout.NORTH); frame.add(but5,BorderLayout.CENTER); frame.setVisible(true); frame.setBounds(500,500,500,500); } //表格布局 public void testLayout3() { } }
练习
生成这样的布局
public class Pratice {
public static void main(String[] args) {
Frame frame1 = new Frame();
Panel pa1 = new Panel(new BorderLayout());
Panel pa2 = new Panel(new GridLayout(2,1));
Panel pa3 = new Panel(new BorderLayout());
Panel pa4 = new Panel(new GridLayout(2,2));
Button but1 = new Button("but1");
Button but2 = new Button("but2");
Button but3 = new Button("but3");
Button but4 = new Button("but4");
Button but5 = new Button("but5");
Button but6 = new Button("but6");
Button but7 = new Button("but7");
Button but8 = new Button("but8");
Button but9 = new Button("but9");
Button but10 = new Button("but10");
frame1.setLayout(new GridLayout(2,1));
frame1.setSize(1000,800);
frame1.setVisible(true);
pa2.add(but3);
pa2.add(but4);
pa1.add(but1,BorderLayout.WEST);
pa1.add(pa2,BorderLayout.CENTER);
pa1.add(but2,BorderLayout.EAST);
pa4.add(but7);
pa4.add(but8);
pa4.add(but9);
pa4.add(but10);
pa3.add(but5,BorderLayout.WEST);
pa3.add(pa4,BorderLayout.CENTER);
pa3.add(but6,BorderLayout.EAST);
frame1.add(pa1);
frame1.add(pa3);
testLayout();
}
public static void testLayout() {
Frame frame = new Frame();
frame.setLayout(new GridLayout(1,3));
frame.setSize(1000,800);
frame.setVisible(true);
Panel pa1 = new Panel(new GridLayout(2,1));
Panel pa2 = new Panel(new GridLayout(2,1));
Panel pa3 = new Panel(new GridLayout(2,1));
Panel pa4 = new Panel(new GridLayout(2,2));
Panel pa5 = new Panel(new GridLayout(2,1));
pa1.add(new Button("b1"));
pa1.add(new Button("b2"));
pa3.add(new Button("b3"));
pa3.add(new Button("b4"));
pa4.add(new Button("b5"));
pa4.add(new Button("b6"));
pa4.add(new Button("b7"));
pa4.add(new Button("b8"));
pa2.add(pa3);
pa2.add(pa4);
pa5.add(new Button("b9"));
pa5.add(new Button("b10"));
frame.add(pa1);
frame.add(pa2);
frame.add(pa5);
}
}