「javafram」javaframe长度
今天给各位分享javafram的知识,其中也会对javaframe长度进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java 关于Frame类
当需要扩展Frame的功能或者想在实例化的多做功能的时候,就写上extends frame,
譬如想在实例化Frame的同时设定size
public class MyFrame extends Frame {
public MyFrame(String s, int width, int height) {
super(s);
super.setSize(width, height);
}
}
这样你实例化MyFrame的时候就已经设定好大小了,少写一些代码
public static void main(String args[]){
MyFrame frame = new MyFrame("My Frame", 300, 200);
}
同样功能的不继承,则需要
public static void main(String args[]){
Frame frame = new Frame("My Frame");
frame.setSize(300, 200);
}
clear?
Java 的Frame和Panel的区别
[Panel]
Panel is the simplest container class. A panel provides space in which an ap
plication can attach any other component, including other panels.
详见java.awt.Panel
注意:以下大写指类,小写泛指对象,比如Frame指Frame类,frame泛指Frame对象。
好象是看出区别了:Frame是Window的子类,一个Frame对象就是一个有标题有边界
的顶层窗口。Panel是最简单的容器类,是Container的子类。一个Panel对象就是要给应
用程序提供空间,用来添加组件,包括其它的Panel对象。
追本溯源,其实Frame和Panel还是有些亲戚关系的:Frame是Window的直接子类,W
indow又是Container的直接子类,而Panel是Container的直接子类,它们都是从Contai
ner里扩展出来的,是叔侄关系。它们的老祖宗是Component(Container是Component的
子类),Component是基类,回溯本源到此为止,已经是根了。
Frame和Panel都是容器类,那么它们在使用上有什么区别呢?
你可以创建一个panel对象,在上面添加组件,比如单独建立一个TestPanel.java
的源文件(TestPanel extends Panel)。但是因为Panel不是顶层容器,所以你不能直
接显示你创建的这个panel对象,必须装在顶层容器里比如嵌入一个frame里,才能显示
。(为什么Frame对象可以直接显示,而Panel对象不能,文章最后有解释。)
Frame是顶层容器,一般不单独使用(注意只是一般,还是可以直接嵌入组件的),而是
习惯在frame里嵌入panel,再在panel上面添加组件。你在用Jbuilder创建一个Applica
tion(比如TestApp和TestAppFrame)的时候,在你的框架文件TestAppFrame里就会自动
生成一个叫contentPane的JPanel对象。
Panel是一般容器,可以自身嵌套(比如在panel1里嵌入panel2);但Frame已经是
顶层容器了,自身不能嵌套。
我们用得最多的JFrame和JPanel,就是Frame和Panel在Swing下的扩展(JFrame是Fr
ame子类和JPanel是Panel的子类)。
我们用Jbuilder创建Application时会自动生成一些代码,其中的frame.pack()一句
是什么意思?注:frame是一个已生成的框架类对象
我们在java.awt.Frame的源文件里找不到pack()方法的定义。看了java.awt.Window
才知
道,原来在Window类里定义了pack()和show()两个显示窗口的方法,被Frame继承了过来
。这可能也是panel无法单独使用的一个原因吧,Panel和它的直接超类Container里,都
没有定义类似pack()和show()的显示容器的方法。
如何在java中建立frame
一般而言可以用两种方法实现。
第一种
import javax.swing.*;
public class FrameDemo1 {
public static void main(String[] args) {
//创建一个JFrame对象
JFrame jf = new JFrame();
//设置窗口的标题栏
jf.setTitle("窗口一");
//创建一个标签组件
JLabel jl = new JLabel("窗口里的标签组件");
//把标签组件添加到窗口界面
jf.add(jl);
//设置窗口的位置
jf.setLocation(200,120);
//设置窗口的大小
jf.setSize(300, 280);
//设置窗口的可见性
jf.setVisible(true);
}
}
第二种方法
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//写一个类去继承JFrame
public class FrameDemo2 extends JFrame{
//定义组件
JLabel jl;
JButton jb;
public FrameDemo2() {
//初始化组件
jl = new JLabel("窗口里的标签组件");
jb = new JButton("窗口里的按钮");
//给按钮添加事件响应,点击按钮改变标签组件上的文字的颜色
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jl.setForeground(Color.RED);
}
});
//设置窗口的布局,为边界布局
this.setLayout(new BorderLayout());
//添加组件到指定的位置
this.add(jl,BorderLayout.CENTER);
this.add(jb,BorderLayout.SOUTH);
//窗口的this.setLocation(120,100) 和this.setSize(300,280)的整合写法setBounds(....);
this.setBounds(120, 100, 300, 280);
//设置点击窗口的关闭按钮执行的默认操作,关闭程序
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
//设置窗口的标题栏
this.setTitle("窗口二");
//窗口默认是不可见的,所以需要设置窗口的可见性为true
this.setVisible(true);
}
public static void main(String[] args) {
new FrameDemo2();
}
}
如何关闭java frame进程
关闭java frame进程的方法是调用关闭的时候执行以下代码:
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
关于EXIT_ON_CLOSE的说明:
EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。
public void exit(int status)通过启动虚拟机的关闭序列,终止当前正在运行的 Java 虚拟机。此方法从不正常返回。可以将变量作为一个状态码;根据惯例,非零的状态码表示非正常终止。
虚拟机的关闭序列包含两个阶段。
在第一个阶段中,会以某种未指定的顺序启动所有已注册的关闭挂钩(如果有的话),并且允许它们同时运行直至结束。
在第二个阶段中,如果已启用退出终结,则运行所有未调用的终结方法。一旦完成这个阶段,虚拟机就会暂停。
如果在虚拟机已开始其关闭序列后才调用此方法,那么若正在运行关闭挂钩,则将无限期地阻断此方法。如果已经运行完关闭挂钩,并且已启用退出终结 (on-exit finalization),那么此方法将利用给定的状态码(如果状态码是非零值)暂停虚拟机;否则将无限期地阻断虚拟机。
System.exit 方法是调用此方法的一种传统而便捷的方式。
关于javafram和javaframe长度的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-07,除非注明,否则均为
原创文章,转载请注明出处。