「java中gui编程」Java gui开发

博主:adminadmin 2023-01-23 15:00:08 311

本篇文章给大家谈谈java中gui编程,以及Java gui开发对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java里面GUI编程红色框里面的new是什么意思什么用法什么操作类做参数吗?

我仔细分析了下, 可能楼主有2方面的疑惑,一是语法方面的疑惑,二是语义上的疑惑.

一: 语法层面的解释:

执行一个方法,需要传入一个"对象"作为参数 ,java中创建对象就需要使用new关键字

// 写法一: 好理解

FlowLayout layout=new FlowLayout();

f.setLayout(layout);

//写法二:  代码简洁

f.setLayout(new FlowLayout());

二:关于语义的解释: 

第一条语句

f.setLayout(new FlowLayout()); //设置为流布局.组件默认从左到右排列

因为Frame 窗体组件, 默认的布局方式是 BorderLayout (边界布局) ; 组件会按照上北,下南,左西,右东的方式进行布局

关于边界布局的参考代码如下

import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.Frame;

public class LayoutDemo1 {

public static void main(String[] args) {

Frame f = new Frame("my awt");

System.out.println(f.getLayout());

//系统打印输出: java.awt.BorderLayout[hgap=0,vgap=0]

//从上面的可以了解到f的默认布局是BorderLayout ,水平间距0,垂直间距还是0

//BorderLayout就是按照,上北,下南,左西,右东 来放置组件的

//并且中间的组件,还会自动填满..

f.setSize(300, 300);

f.setLocation(300, 200);

Button d = new Button("东");

Button x = new Button("西");

Button n = new Button("南");

Button b = new Button("北");

Button z = new Button("中");

f.add(d,BorderLayout.EAST);//把按钮组件添加到指定的位置

f.add(x,BorderLayout.WEST);

f.add(n,BorderLayout.SOUTH);

f.add(b,BorderLayout.NORTH);

f.add(z);//如果添加到中间, 那么可以省略BorderLayout.CENTER参数

//中间的按钮,会填充满整个空间

//f.add(new Button("新按钮"),BorderLayout.CENTER); 

//在同一区域,放置多个组件,那么后添加的组件会覆盖之前添加的组件

f.setVisible(true);

}

}

代码f.setLayout(new FlowLayout()); 就是修改默认的边界布局为流布局.默认从左到右排列

关于流布局的效果图

关于流布局的代码如下

import java.awt.Button;

import java.awt.FlowLayout;

import java.awt.Frame;

public class LayoutDemo2 {

public static void main(String[] args) {

Frame f = new Frame("my awt");

f.setLayout(new FlowLayout()); //设置为流布局.默认从左到右排列

f.setSize(300, 300);

f.setLocation(300, 200);

Button d = new Button("1");

Button x = new Button("2");

Button n = new Button("3");

Button b = new Button("4");

Button z = new Button("5");

f.add(d);

f.add(x);

f.add(n);

f.add(b);

f.add(z);

f.setVisible(true);

}

}

解释第二条语句

f.addWindowListener(new MyWin());

因为窗体会产生一些事件, 我们需要对响应的事件进行对应的处理.

比如窗口首次打开时, 会触发窗口打开事件

窗口右上角的关闭按钮被点击时, 会触发窗口关闭ing事件

窗口显示出来,又会触发窗口激活事件

f.addWindowListener 就表示添加一个窗口事件的反应器, 可以根据窗口事件来做出相关的反应

参考代码

import java.awt.Button;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class LayoutDemo3 {

public static void main(String[] args) {

Frame f = new Frame("my awt");

f.setLayout(new FlowLayout());

f.setSize(300, 300);

f.setLocation(300, 200);

Button z = new Button("中");

f.add(z);

f.addWindowListener(new MyWin());

// 这里需要1个WindowListener 的实现类,

// 我们可以自己去写一个,也可以使用系统提供的WindowAdapter

f.setVisible(true);

}

}

class MyWin extends WindowAdapter{

@Override

public void windowClosing(WindowEvent e) {

System.out.println("关");

System.exit(0); // 关闭 ,一般在这里添加关闭代码

//添加了关闭代码, 那么点击窗口右上角的关闭按钮时,窗口就会消失了,程序就结束了

}

@Override

public void windowActivated(WindowEvent e) {

System.out.println("活");

}

@Override

public void windowOpened(WindowEvent e) {

System.out.println("开");

}

}

java的gui编程,高手来救啊

监听的目前没有啥好的想法

关于按键的有点,给你分享一下,理解不对的话,见谅啊。

你的问题现在是,先按住上方向键,坦克向上走,按住上键,又按住左键了,坦克向左走,此时放开左键了,坦克没有继续向上走,而需要你重新按向上键。

如果我理解对了,你继续看,不对就算了、、、

如果是上面的问题,你程序的处理应该是监听到Key按下事件,然后根据Key的值,向不同的方向移动,监听到Key放开事件,就停止移动

如果想继续移动,可以通过程序去判断:

1:在监听类,中定义一个MapInteger 保存按下的Key

2:监听到Key按下事件,把Key保存到Map中,并向改方向移动。

3:监听到Key放开事件,把Key从Map中移除,并判断Map是否为空,为空停止移动,如果不为空,获取Map中的Key值,继续向Key所指向方向移动

注:这个方法只支持最多按两个键,多了的话,比如现在按住3个键,放开一个了,不处理的话,因为Map不是排序的,随便获取一个Key的话,移动的方向可能不是自己想要的,如果要支持多键的,可以使用LinkedMap,他可以保存按键的保存顺序,比如按键的顺序为a,b,c 放开c的时候,迭代Map,第一个一定是b,你可以向b方向移动,放开b的时候,迭代Map,获取就是a了

java的GUI编程,如何关闭一个窗体,而不是退出整个程序

JFrame的关闭不像Frame,点关闭按钮自己会关闭,但是那样做不好.可以用setDefaultCloseOperation(int operation);

其中operation有以下几种

DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的 WindowListener 对象的 windowClosing 方法中处理该操作。

HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener 对象后自动隐藏该窗体。

DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。

EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。

默认情况下,该值被设置为 HIDE_ON_CLOSE。更改此属性的值将导致激发属性更改事件,其属性名称为 "defaultCloseOperation"。

java中gui编程的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java gui开发、java中gui编程的信息别忘了在本站进行查找喔。