Java中利用JFrame创建窗体
- 格式:docx
- 大小:48.39 KB
- 文档页数:9
java中利用JFrame创建窗体
•java
1. 一个简单例子:
Java代码
2.创建窗体
在开发Java应用程序时,通常情况下利用JFrame创建窗口。
利用JFrame创建的窗口分别包含一个标题、最小化按钮、最大化按钮和关闭按钮
在利用JFrame创建窗口时,需要设置单击关闭按钮时执行的动作,设置方法为通过JFrame 对象的setDefault CloseOperation(int operation)方法,该方法的入口参数可以从JFrame 类的静态常量中选择,可选的静态常量如表1所示。
表1 JFrame类中用来设置关闭按钮动作的静态常量
设置单击关闭按钮时执行动作的典型代码如下:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE):
JFrame窗口的默认显示位置为从(0,0)点开始绘制,即从显示器的左上角开始绘制。
通常
情况下更希望显示在显示器的中央,可以通过Toolkit类的静态方法getDefaultToolkit()获得一个Toolkit类的对象,然后通过Toolkit对象的getScreenSize()方法获得一个Dimension 类的对象,通过Dimension对象可以得到显示器的大小,例如显示器的宽度和高度,获得Dimension对象的典型代码如下:
Dimension displaySize = Toolkit.getDefaultToolkit().getScreenSize();
通过JFrame对象的getSize()方法也可以得到一个Dimension类的对象,通过Dimension 对象可以得到JFrame窗口的大小,例如JFrame窗口的宽度和高度,获得Dimension对象的典型代码如下:
Dimension frameSize = frame.getSize();
利用上面得到的两个Dimension类的对象,就可以计算出显示在显示器中央时的起始绘制点了,然后通过JFrame对象的setLocation(int x, int y)方法,设置JFrame窗口在显示器中的起始绘制点,典型代码如下:
frame.setLocation((displaySize.width - frameSize.width) / 2,(displaySize.height - frameSize.height) / 2);
利用JFrame创建的窗口默认是不可见的,即在运行时不在显示器上绘制窗口,设置为可见的方法是通过JFrame对象的setVisible(boolean b)方法,并将入口参数设为true,典型代码如下:
frame.setVisible(true):
下面将通过一个例子,实现利用JFrame创建一个图1所示的窗口。
下面的代码将创建一个标题为“利用JFrame创建窗口”的窗口,该窗口的关闭按钮执行的动作是退出窗口,该窗口将显示在显示器的中央,代码如下:
Java代码
3.修改图标:
setIconImage (Toolkit . getDefaultToolkit (). createImage (
getClass (). getResource ("login.png" )));
(注意:图片login.png要放在与调用该图片的类于同一个文件夹;另,Java好像不支持ico格式)
4.Java Swing如何实时刷新JTextArea,以显示刚才加append的内容
在代码中执行完textArea.append("message")后,如果你想让这个更新立刻显示在界面上而不是等swing的主线程返回后刷新,我们一般会在该语句后调用textArea.invalidate()和textArea.repaint()。
问题是这个方法并不能有任何效果,textArea的内容没有任何变化,这或许是swing的一个bug,有一个笨拙的办法可以实现这个效果,就是执行以下语句
textArea.paintImmediately(textArea.getBounds());
或
textArea.paintImmediately(textArea.getX(), textArea.getY(), textArea.getWidth(), textArea.getHeight());
这时,你会发现你刚才增加的消息已经被实时地显示出来了。
5. 画图并添加鼠标事件
Java代码
6.另一个例子:在一个TextArea里写内容,其他两个同时显示Java代码
7.Java 关闭窗体的六种方法
--------------------------------------------------------------------------------。