目录
AWT
Frame对象:创建窗口
编辑
该对象相关的属性
设置窗口大小(对象.setsize(int,int))
让窗口可以显现出来(对象.setVisible(bool))
设置窗口标题(对象.setTitle(String))
设置窗口颜色(对象.setBackground(颜色))
设置窗口始终展示在最前面(对象.setAlwaysOnTop(bool))
调整窗口位置(对象.setLocation(int,int))
设置窗口大小是否固定(对象.setResizable(false))
移入窗口中光标改变(个性化光标)//没啥用
监听器
定义:
监听器流程思路
使用监听器
监听对象:WindowListener(窗口)
监听对象:KeyListener(键盘)
监听对象:MouseListener(鼠标)
监听对象:MouseWheelListener(鼠标滚动)
事件
窗口常见事件
键盘常见事件
编辑
e.getkeychar()//获取当前事件输入的字符
鼠标常见事件
常用组件
组件的介绍
常用组件
标签(lable)
相应属性
按钮(Button)
按钮的点击事件(对象.addActionListener(e->{}))
文本框(TextField)
对象.getText()函数获得文本框输入的内容
对象.setEchoChar('*')展示输入文本框样子
文本域(解决文本框无法换行问题)TextArea
勾选框(Checkbox )
编辑
checkbox.getState()函数,返回bool值是否勾选,是true,不是false
单选框组(CheckboxGroup)
布局和面板
边界布局
编辑
编辑
流式布局FlowLayout
卡片布局
网格布局(GridLayout)
编辑
面板与布局的嵌套使用
面板的概念
滚动面板和列表
滚动面板
列表
菜单栏
定义
编辑
菜单栏的监听事件为
弹出菜单
对话框
Blue留言:
最近在学习一些知识,所以没时间去写文章,但为了保持创作的习惯,就将以前的笔记给转成文章了。
AWT
Frame对象:创建窗口
Frame frame =new Frame();
frame是一个窗口,创建的对象,就直接成一个新的窗口(默认窗口是不可见的)
该对象相关的属性
设置窗口大小(对象.setsize(int,int))
frame.setSize(x1,x2);//利用setsize方法设定窗口大小
后面两个参数分别为x1:长和x2:宽,分别都是int形
让窗口可以显现出来(对象.setVisible(bool))
frame.setVisible(true);//这个功能是为了让窗口出现可见性,默认窗口是不可见的
注意:默认窗口是不可见的
设置窗口标题(对象.setTitle(String))
frame.setTitle("傻逼");
设置窗口颜色(对象.setBackground(颜色))
frame.setBackground(new Color(1,2,3));
参数有两种写法:
第一种写法:Color.(系统给你的颜色)
第二种写法:new Color()这里的参数就是ragb()写法
设置窗口始终展示在最前面(对象.setAlwaysOnTop(bool))
frame.setAlwaysOnTop(true);//设置窗口始终在前面
调整窗口位置(对象.setLocation(int,int))
frame.setLocation(500,300);//调整窗口的位置
默认位置:是在整个页面的左上角
调整前:
调整后:
设置窗口大小是否固定(对象.setResizable(false))
frame.setResizable(true);//设置窗口大小是否固定
移入窗口中光标改变(个性化光标)//没啥用
frame.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));
里面的参数得自己去查
监听器
定义:
处理窗口中发生的事件,比如移动鼠标,关闭窗口,鼠标点击等,当发生了这些事件时,然后要去做什么。
监听器流程思路
先使用监听器监听对象,也就是这些像窗口,键盘,鼠标之类的,然后监听到了后,使用适配器重写下面的事件,比如监听到了键盘,然后键盘这个对象有三个事件,分别为按下松开整个过程,按下,松开,然后你是想要那个事件,如果单独只要按下,那么就重写按下这个事件。
使用监听器
对象.add监听对象();
监听对象:WindowListener(窗口)
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
frame.dispose();
}
监听窗口,然后利用匿名内部类,重写WindowListener下面的各个事件的方法。这里使用了适配器(注意以Adapter结尾的都是适配器),也就是使用了一个类叫WindowAdapter,然后空重写实现WindowListener下面的方法,这样就可以直接重写WindowAdapter()下面某一个方法,不需要全部重写。
监听对象:KeyListener(键盘)
frame.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
}
});
同理
监听对象:MouseListener(鼠标)
frame.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
super.mouseEntered(e);
}
});
监听对象:MouseWheelListener(鼠标滚动)
frame.addMouseWheelListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
}
});
事件
窗口常见事件
键盘常见事件
此图为适配器下的
e.getkeychar()//获取当前事件输入的字符
鼠标常见事件
常用组件
组件的介绍
组件实际就是awt提前预定好了的元素,如按钮,文本框,标签等。
常用组件
标签(lable)
Label label =new Label("我是标签");//添加标签只需要创建一个label对象就行
label.setLocation(20,50);//必须设置标签的位置与大小,否则无法展示出来
label.setSize(100,20);
frame.add(label);//使用add方法添加组件到窗口
注意:组件的位置是以窗口左上角的原点开始的,包括标题栏在内的,所以如果想要设置正常组件的位置,还得注意加上标签栏的高度,否则会被遮挡
相应属性
label.setBackgroud(Color.BLACK)//背景颜色
label.setForeground(Color.BLACK);//字体颜色
按钮(Button)
Button button=new Button("我是按钮");//添加按钮只需要创建一个Button对象就行
button.setBounds(20,50,100,50);//设置按钮的位置和大小,前两位参数为位置,后两位为大小
按钮的点击事件(对象.addActionListener(e->{}))
button.addActionListener(e -> {
System.out.println("被点击");
});
文本框(TextField)
TextField field= new TextField();//TextField是一个文本框
field.setBounds(20,50,100,25);
frame.add(field);
对象.getText()函数获得文本框输入的内容
button.setBounds(20,100,100,50);
button.addActionListener(e -> {
String sc= field.getText();
System.out.println(sc);
});
frame.add(button);
对象.setEchoChar('*')展示输入文本框样子
field.setEchoChar('*');//展示输入文本框样子
未加此函数前:
加了此函数后:
文本域(解决文本框无法换行问题)TextArea
TextArea textArea=new TextArea();
textArea.setBounds(150,100,300,100);
frame.add(textArea);
对象.getText()函数获得文本框输入的内容
勾选框(Checkbox )
Checkbox checkbox =new Checkbox("记住密码");
checkbox.setBounds(20,50,100,50);
frame.add(checkbox);
checkbox.getState()函数,返回bool值是否勾选,是true,不是false
checkbox.getState()函数,返回bool值是否勾选,是true,不是false
单选框组(CheckboxGroup)
CheckboxGroup group=new CheckboxGroup();
Checkbox c1=new Checkbox("1");
c1.setBounds(60,60,60,60);
frame.add(c1);
Checkbox c2=new Checkbox("2");
c2.setBounds(60,100,60,60);
frame.add(c2);
c1.setCheckboxGroup(group);
c2.setCheckboxGroup(group);
将两个勾选框直接整上了联系,只能勾选上其中的一个,不能同时勾选。
使用如下函数可以获得checkbox里面的label也就是上面代码的‘1’or'2'
group.getSelectedCheckbox().getLabel();
布局和面板
边界布局
默然窗口采用的是边界布局,这种布局支持将组件放置五个区域
流式布局FlowLayout
FlowLayout()
构造一个新的 FlowLayout,它是默认居中对齐的,默认的水平和垂直间隙是5个像素
-
FlowLayout(int align)
构造一个新的 FlowLayout,它具有指定的对齐方式,默认的水平和垂直间隙是 5 个像素
五个参数值及含义如下:
0或FlowLayout.lEFT,控件左对齐
1或FlowLayout.CENTER,居中对齐
2或FlowLayout.RIGHT,右对齐
3或FlowLayout.LEADING,控件与容器方向开始边对应
4或FlowLayout.TRAILING,控件与容器方向结束边对应
如果是0、1、2、3、4之外的整数,则为左对齐
-
FlowLayout(int align, int hgap, int vgap)
创建一个新的流布局管理器,它具有指定的对齐方式以及指定的水平和垂直间隙。
三、常用方法
void setAlignment(int align):设置此布局的对齐方式。
void setHgap(int hgap):设置组件之间以及组件与 Container 的边之间的水平间隙。
void setVgap(int vgap):设置组件之间以及组件与 Container 的边之间的垂直间隙
卡片布局
frame.setLayout(layout);
frame.add(new Button("1号按钮"));
frame.add(new Button("2号按钮"));
frame.setVisible(true);//这个功能是为了让窗口出现可见性,默认窗口是不可见的
while (true)
{
Thread.sleep(3000);
layout.next(frame);
}
网格布局(GridLayout)
面板与布局的嵌套使用
一般情况下只有窗口才能设置布局,为了让程序里面的布局多种多样,除了窗口外实际上还可以使用其他的容器,这里就要使用面板的概念
面板的概念
定义一个面板:
Panel panel =new Panel();
然后添加进窗口中
frame.add(panel);
面板也可以添加面板进去。
滚动面板和列表
滚动面板
ScrollPane scrollPane=new ScrollPane();//使用ScrollPane类定义
一个滚动面板里面只能放一个组件
注意在布局时,并没有规定一定要按照布局大小来展示组件,可以按照自己的想法去设置组件长宽高,使用
组件.setPreferredSize(new Dimension(长,宽))
的写法来自定义组件的长宽。
列表
滚动面板往往搭配的List列表(注意这里的列表不是我们集合类的列表,而是展示的列表组件)
List list=new List();//
如果想要多选的话可以给list设置值
list.setMultipleMode(true);//利用Ctrl加鼠标右键可以多选或者鼠标也行
列表的监听对象是:
list.addItemListenner(e->{})
利用list.getselectitem:可以获取已经被选择的item
菜单栏
定义
以上便是菜单栏
菜单栏下面有划分很多
MenuBar menuBar=new MenuBar();
Menu menu=new Menu("我是菜单");
MenuItem item1=new MenuItem("1");
MenuItem itemw=new MenuItem("2");
menu.add(item1);
menu.add(itemw);
menuBar.add(menu);
frame.setMenuBar(menuBar);
MenuBar:整个菜单栏
Meanu:菜单栏上面的某个选项
Meanuitem:菜单栏下的某个选项点击后的某个选项(可以通过item.setShortcut(new MenuItem())设置快捷键)
注意:frame添加菜单栏的时候,使用frame.setMenuBar(menuBar);这个添加
菜单栏的监听事件为
item.addActionListener
弹出菜单
这便是弹出菜单
使用这个对象
PopupMenu menu=new PopupMenu();
在这个菜单栏里面添加选项
menu.add(new MenuItem("我是你的芭比"));
menu.add(new MenuItem("我是你的die比"));
menu.add(new MenuItem("我是你的father"));
加入到窗口里面
frame.add(menu);
设置监听对象,使得右键后菜单栏会弹出
frame.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if(e.getButton()==MouseEvent.BUTTON3)
{
menu.show(frame,e.getX(),e.getY());
}
}
});
对话框
对话框说白了就是一个小窗口
Dialog dialog = new Dialog(frame,"要退出吗?",true);//使用这个类创造对话框
参数分别为:
参数一:依附于那个窗口
参数二:标题
参数三:是否允许不去操作其他的东西,如果是,则只能点击对话框其他一律不能点
例子:
Dialog dialog = new Dialog(frame,"要退出吗?",true);
dialog.setBounds(300,200,200,100);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
dialog.setVisible(true);
}
});
结语
感谢阅读