「javafram」javaframe长度

博主:adminadmin 2022-12-07 00:03:06 77

今天给各位分享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长度的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-07,除非注明,否则均为首码项目网原创文章,转载请注明出处。