一.第一个运行实例
package banking;
import java.awt.Frame;
import java.awt.Color;
public class FirstFrame extends Frame {
public FirstFrame(String str){
super(str);//给框架命名
}
public static void main(String[] args) {
FirstFrame fr = new FirstFrame("Hello");//第一个框架名字叫“Hello”
//以下是设置框架的各个参数
fr.setSize(240,240);
fr.setBackground(Color.GRAY);
fr.setVisible(true);//frame的默认是不可见的
}
}
运行结果(发现不同的电脑运行出来的默认图片不一样,同时这个框是无法通过按×自动关闭的,必须是在编译器中红色按键关闭)

二.将panel面板容器加入Frame中
package banking;
import java.awt.Frame;//一个基本的框架工具
import java.awt.Color;
import java.awt.Panel;//无法独立存在的透明容器,必须放在其他容器中使用
public class FirstFrame extends Frame {
public FirstFrame(String str){
super(str);//给框架命名
}
public static void main(String[] args) {
FirstFrame fr = new FirstFrame("Hello");//第一个框架名字叫“Hello”
//以下是设置框架的各个参数
fr.setSize(440,440);
fr.setBackground(Color.gray);
//fr.setVisible(true);//frame的默认是不可见的
//以下是在frame容器的基础上创建panel并设置参数
Panel pan = new Panel();
pan.setSize(100,100);
pan.setBackground(Color.blue);
fr.add(pan);//panel必须在一个容器中显示,通过add方法pan就成为了fr的一部分,性质可以由fr操控
fr.setVisible(true);//此时是将pan的可见性仪器设置了
}
}
但是发现只能显示panel的颜色,这是为什么呢。。。
是因为在Frame中的默认布局没有取消,修改的代码如下:
package banking;
import java.awt.Frame;//一个基本的框架工具
import java.awt.Color;
import java.awt.Panel;//无法独立存在的透明容器,必须放在其他容器中使用
public class FirstFrame extends Frame {
public FirstFrame(String str){
super(str);//给框架命名
}
public static void main(String[] args) {
FirstFrame fr = new FirstFrame("Hello");//第一个框架名字叫“Hello”
//以下是设置框架的各个参数
fr.setSize(440,440);
fr.setBackground(Color.gray);
//fr.setVisible(true);//frame的默认是不可见的
fr.setLayout(null);
//以下是在frame容器的基础上创建panel并设置参数
Panel pan = new Panel();
pan.setSize(100,100);
pan.setBackground(Color.blue);
fr.add(pan);//panel必须在一个容器中显示,通过add方法pan就成为了fr的一部分,性质可以由fr操控
fr.setVisible(true);//此时是将pan的可见性仪器设置了
}
}

成功显示!!!(其实我发现Color类中的大写和小写的颜色并没有什么区别。。。如果有当我没说,我是小白菜)
三.接触交互设计阶段——安装按键
package Frame;
import java.awt.*;
public class layout {
public static void main(String[] args) {
Frame frame = new Frame("laayoutmanage");//专门用于学习layout的框架
//基本步骤:先设置frame的基本框架
frame.setSize(300,300);
frame.setBounds(100,100,400,300);//这是用来设置什么?
frame.setLayout(new FlowLayout());//在frame中加入一个新的layout
//创建按键
Button but1 = new Button("按键1");
Button but2 = new Button("按键2");
Button but3 = new Button("按键3");
Button but4 = new Button("按键4");
Button but5 = new Button("按键5");
//先创建独立的按键对象实例,此时并不属于frame框架中
but1.setBackground(Color.white);
but2.setBackground(Color.yellow);
but3.setBackground(Color.orange);
but4.setBackground(Color.magenta);
but5.setBackground(Color.red);
//接下来将创建的按键放入frame容器
frame.add(but1);
frame.add(but2);
frame.add(but3);
frame.add(but4);
frame.add(but5);
//一般最后都是将frame容器的可见性设置为可见
frame.setVisible(true);
}
}
显示效果如下(但是我并不知道为什么位置会默认的设置好了)

解答来了:FlowLayout的对齐方式默认为居中对齐,但是我们也可以自己指定对齐方式及横纵向间隔。
那么接下来就是自定义的布局参数了,如下,便将按键设置为了靠左的

四.按键的全局布局
package Frame;
import java.awt.*;
public class Border {
public static void main(String[] args) {
Frame frame = new Frame("newBorder");
frame.setBounds(100,100,400,300);
//创建按键,此时按键并不属于frame中
Button but1 = new Button("button1");
Button but2 = new Button("button2");
Button but3 = new Button("button3");
Button but4 = new Button("button4");
Button but5 = new Button("button5");
//设置各个按键的颜色
but1.setBackground(Color.white);
but2.setBackground(Color.yellow);
but3.setBackground(Color.orange);
but4.setBackground(Color.magenta);
but5.setBackground(Color.red);
//按键的位置是要在加入frame框架步骤的过程中进行进行设置
frame.add(but1,BorderLayout.CENTER);//先将按键1放入frame中然后设置位置
frame.add(but2,BorderLayout.EAST);
frame.add(but3,BorderLayout.SOUTH);
frame.add(but4,BorderLayout.WEST);
frame.add(but5,BorderLayout.NORTH);
frame.setVisible(true);
}
}
显示效果如下:

值得注意的是:frame中元素的拉入是可以进行覆盖的,即将新加入的按键可以覆盖原来的按键的显示,同时图中的布局是东西南北中的默认位置和大小参数。

555

被折叠的 条评论
为什么被折叠?



