您的位置:首页 > 其它

迦瓦栈队 团队第四周项目总结

2016-06-05 20:12 232 查看

窗口界面

简单的用户界面

之前在c语言或是java语言中我们仅仅是制作算法,让程序计算机代替我们实现计算过程,然而当做到游戏时,我们就不得不要考虑用户的可操作的简易性、阅读的方便性等功能了。说到可视化界面,我们就得提一提java的框架基础,实现简单的用户界面。

组件和窗口
组件:是窗口内的元素,包括按钮、 按钮、复选框、标签等简单组件,以及文本框、滑块和其他复选框等,而窗口则是容纳组件的一个容器。容器分别是使用Swing包中的JWindow和JFrame类创建的,创建前需要导入javax.swing.*包。Jframe(框架窗口):这是通常意义上的窗口,它支持窗口周边的框架、标题栏,以及最小化、最大化和关闭按钮;JWindow(一种无边框窗口):没有标题栏,没有框架,只是一个空的矩形。

Frame类的主要构造方法:

JFrame():创建无标题的窗口对象;

JFrame(String s):创建一个标题名是字符串s的窗口对象。

Jlable组件显示用户不能修改的信息,这种信息可以是文本、图形或两者的组合。JTextField组件是用户可以输入单行文本的区域。创建时可以设置其宽度。Jbutton对象是一个可以单击的按钮,其标签描述了单击按钮的结果。该标签可以使文本、图像或两者的组合。JButton和其他组件一样,位于java.awt.swing包中。

JButton okButton = new JButton(“OK”);

创建好JButton等组件后。应调用add()方法将其加入到容器中:

add(okButton);

在容器中添加组件时,不需要致命组件在容器中显示的位置,组件的布局由被称为布局管理器的对象决定。最简单的布局管理器是FlowLayout类,它位于java.awt中。

要让容器使用特定不布局管理器,必须首先创建该布局管理器的对象。使用下面的语句创建FlowLayout对象:

FlowLayout fl = new FlowLayout();

创建好后,调用其setLayout()方法将其管理器同容器关联起来,该方法将布局管理器对象作为唯一的参数:

Pane.setLayout(flo);

这条语句将flo对象指定为容器pane的布局管理器。

简单的示范:

import java.awt.*;

public class ChuangKou2 {
public static void main(String[] args) {
Frame f = new Frame("Flow Layout");
Button b1 = new Button("OK");
Button b2 = new Button("Open");
Button b3 = new Button("Close");

f.setLayout(new FlowLayout());
//f.setLayout(new FlowLayout(FlowLayout.LEFT));
//f.setLayout(new FlowLayout(FlowLayout.LEFT,40,50));

f.add(b1);
f.add(b2);
f.add(b3);
f.setSize(300, 500);
f.setVisible(true);
Frame ff = new Frame("java Frame");

FlowLayout l =
new FlowLayout(FlowLayout.CENTER, 20, 40);  //按钮位置的设置
ff.setLayout(l);

ff.setLocation(300, 400);  //窗体出现在页面位置的设置
ff.setSize(300, 200);  //窗体的大小设置
ff.setBackground(new Color(204, 204, 255));
for(int i = 0; i <= 7; i++) {
ff.add(new Button("BUTTON"));
}
ff.setVisible(true);
}

}

结果显示:





#### 动作事件(ActionEvent)

上述只是简单的制作按钮界面而已,要让按钮点击起到作用,就要用到动作事件(ActionEvent),ActionEvent包含一个事件。使用举例:

public void actionPerformed(ActionEvent ae)
{
String str=ae.getActionCommand();

if(str.equals("开始"))
{

}
}

监听器的使用:addKeyListener

public void addKeyListener(KeyListener l)
添加指定的按键侦听器,以接收发自此组件的按键事件。如果 l 为 null,则不会抛出异常并且不执行动作。 位于包java.awt.event ,接口 KeyListener用于接收键盘事件(击键)的侦听器接口。旨在处理键盘事件的类要么实现此接口(及其包含的所有方法),要么扩展抽象 KeyAdapter 类(仅重写有用的方法)。

然后使用组件的 addKeyListener 方法将从该类所创建的侦听器对象向该组件注册。按下、释放或键入键时生成键盘事件。然后调用侦听器对象中的相关方法并将该 KeyEvent 传递给它。

按下某个键时调用方法:
void keyPressed(KeyEvent e)


键入某个键时调用此方法:
keyTyped(KeyEvent e)


使用:

public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if (model.running){                // 运行状态下,处理的按键
switch (keyCode) {
case KeyEvent.VK_UP:
model.changeDirection(SnakeModel.UP);
break;
case KeyEvent.VK_DOWN:
model.changeDirection(SnakeModel.DOWN);
break;
case KeyEvent.VK_LEFT:
model.changeDirection(SnakeModel.LEFT);
break;
case KeyEvent.VK_RIGHT:
model.changeDirection(SnakeModel.RIGHT);
break;
case KeyEvent.VK_ADD:
case KeyEvent.VK_PAGE_UP:
model.speedUp();
break;
case KeyEvent.VK_SUBTRACT:
case KeyEvent.VK_PAGE_DOWN:
model.speedDown();
break;
case KeyEvent.VK_SPACE:
case KeyEvent.VK_P:
model.changePauseState();
break;
default:
}
}

上述是关于贪吃蛇键入键盘上下左右键时方向的控制 。

java.awt 类 BorderLayout

这是一个布置容器的边框布局,它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件,并通过相应的常量进行标识:NORTH、SOUTH、EAST、WEST、CENTER。当使用边框布局将一个组件添加到容器中时,要使用这五个常量之一
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: