窗体作为Swing的应用程序中组件的承载体,处于非常重要的地位。Swing中常用的窗体包括JFrame和JDialog,在这里主要讲解这两个窗体的使用方法。
JFrame窗体
Swing 的三个基本构造块:标签、按钮和文本字段;但是需要个地方安放它们,并希望用户知道如何处理它们。JFrame 类就是解决这个问题的——它是一个容器,允许程序员把其他组件添加到它里面,把它们组织起来,并把它们呈现给用户。 JFrame 实际上不仅仅让程序员把组件放入其中并呈现给用户。比起它表面上的简单性,它实际上是 Swing 包中最复杂的组件。为了最大程度地简化组件,在独立于操作系统的 Swing 组件与实际运行这些组件的操作系统之间,JFrame 起着桥梁的作用。JFrame 在本机操作系统中是以窗口的形式注册的,这么做之后,就可以得到许多熟悉的操作系统窗口的特性:最小化/最大化、改变大小、移动。
常用方法
protected void | addImpl(Component comp, Object constraints, int index) 添加指定的子 Component。 |
protected JRootPane | createRootPane() 由构造方法调用,以创建默认的 rootPane。 |
protected void | frameInit() 由构造方法调用,以适当地初始化 JFrame。 |
AccessibleContext | getAccessibleContext() 获得与此 JFrame 关联的 AccessibleContext。 |
getContentPane() 返回此窗体的 contentPane 对象 | |
int | getDefaultCloseOperation() 返回用户在此窗体上发起 "close" 时执行的操作。 |
getGlassPane() 返回此窗体的 glassPane 对象。 | |
getGraphics() 为组件创建一个图形上下文。 | |
JMenuBar | getJMenuBar() 返回此窗体上设置的菜单栏。 |
JLayeredPane | getLayeredPane() 返回此窗体的 layeredPane 对象。 |
JRootPane | getRootPane() 返回此窗体的 rootPane 对象。 |
TransferHandler | getTransferHandler() 获取 transferHandler 属性。 |
static boolean | isDefaultLookAndFeelDecorated() 如果新创建的 JFrame 应该由当前外观为其提供 Window 装饰,则返回 true。 |
protected boolean | isRootPaneCheckingEnabled() 返回是否将对 add 和 setLayout 的调用转发到 contentPane。 |
protected String | paramString() 返回此 JFrame 的字符串表示形式。 |
protected void | processWindowEvent(WindowEvent e) 处理此组件上发生的窗口事件。 |
void | 从该容器中移除指定组件。 |
void | repaint(long time, int x, int y, int width, int height) 在 time 毫秒内重绘此组件的指定矩形区域。 |
void | setContentPane(Container contentPane) 设置 contentPane 属性。 |
void | setDefaultCloseOperation(int operation) 设置用户在此窗体上发起 "close" 时默认执行的操作。 |
static void | setDefaultLookAndFeelDecorated(boolean defaultLookAndFeelDecorated) 提供一个关于新创建的 JFrame 是否应该具有当前外观为其提供的 Window 装饰(如边框、关闭窗口的小部件、标题等等)的提示。 |
void | setGlassPane(Component glassPane) 设置 glassPane 属性。 |
void | setIconImage(Image image) 设置要作为此窗口图标显示的图像。 |
void | setJMenuBar(JMenuBar menubar) 设置此窗体的菜单栏。 |
void | setLayeredPane(JLayeredPane layeredPane) 设置 layeredPane 属性。 |
void | setLayout(LayoutManager manager) 设置 LayoutManager。 |
protected void | setRootPane(JRootPane root) 设置 rootPane 属性。 |
protected void | setRootPaneCheckingEnabled(boolean enabled) 设置是否将对 add 和 setLayout 的调用转发到 contentPane。 |
void | setTransferHandler(TransferHandler newHandler) 设置 transferHandler 属性,该属性是支持向此组件传输数据的机制。 |
void | 只是调用 paint(g)。
|
下面详细的讲解一下JFrame使用方法
JFrame jf =new JFrame(title);Container container =jf.getContenPane();//jf是类的对象container是Container类的对象,可以对JFrame对象调用getContenPane的方法进行获取//这里要有这样一个概念,就是Swing组件窗体通常和组件和容器有关,所以在JFrame对象创建完成后,需要调用getContenPane进行将窗体转化为容器,然后在容器中进行添加或者删除组件
import java.awt.*;import javax.swing.*;public class Example1 extends JFrame {// public void CreateJFrame(String title) { JFrame jf=new JFrame(title); Container container =jf.getContentPane(); JLabel jl=new JLabel("大家好,我是高维远"); jl.setHorizontalAlignment(SwingConstants.CENTER); container.add(jl); container.setBackground(Color.WHITE); jf.setVisible(true); jf.setSize(300,200); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { new Example1().CreateJFrame("高维远的示例"); }}
这里面进行讲解一下,首先,JFrame是被我们的朱类example1继承的,在CreateJFrame这个方法中,实例化JFrame对象
而JFrame的构造方法有两种,一种含参一种无参public JFrame(String title)
然后说一下给予窗体 的关闭方式吧
差不多有四种
DO NOTHING ON CLOSE
DISPOSE ON CLOSE
HIDE ON CLOSE
EXIT ON CLOSE
这四种分别是1什么都不做将窗口关闭2任何注册监听程序对象后自动隐藏并释放窗体
3隐藏窗口的迷人窗口关闭
4退出应用程序默认窗口关闭
原文出处:https://blog.csdn.net/gaoweiyuan1996/article/details/81231090