1. 概述

官方JavaDocsApi: javax.swing.JFrame

JFrame,窗口。JFrame 是一个可以独立显示的组件,一个窗口通常包含有标题、图标、操作按钮(关闭、最小化、最大化),还可以为窗口添加菜单栏、工具栏等。一个进程中可以创建多个窗口,并可在适当时候进行显示、隐藏 或 销毁。

JFrame 常用构造方法:

/**

* 参数说明:

* title: 窗口标题

*/

JFrame()

JFrame(String title)

JFrame 常用方法:

// 设置窗口的 标题

void setTitle(String title)

// 设置窗口的 图标

void setIconImage(Image image)

// 设置窗口的 宽高

void setSize(int width, int height)

void setSize(Dimension d)

/**

* 设置窗口关闭按钮点击后的默认操作, 参考值:

* WindowConstants.DO_NOTHING_ON_CLOSE: 不执行任何操作。

* WindowConstants.HIDE_ON_CLOSE: 隐藏窗口(不会结束进程), 再次调用 setVisible(true) 将再次显示。

* WindowConstants.DISPOSE_ON_CLOSE: 销毁窗口, 如果所有可显示的窗口都被 DISPOSE, 则可能会自动结束进程。

* WindowConstants.EXIT_ON_CLOSE: 退出进程。

*/

void setDefaultCloseOperation(int operation)

// 设置窗口是否可放大缩小

void setResizable(boolean resizable)

// 设置窗口的 位置(相对于屏幕左上角)

void setLocation(int x, int y)

void setLocation(Point p)

// 设置窗口的 位置 和 宽高

void setBounds(int x, int y, int width, int height)

void setBounds(Rectangle rect)

// 获取窗口的位置坐标(相对于屏幕坐标空间)

Point getLocationOnScreen()

// 获取窗口的位置坐标(相对于父级坐标空间, 窗口的父级一般就是屏幕)

Point getLocation()

/**

* 设置窗口的相对位置。

* 如果 comp 整个显示区域在屏幕内, 则将窗口放置到 comp 的中心;

* 如果 comp 显示区域有部分不在屏幕内, 则将该窗口放置在最接近 comp 中心的一侧;

* comp 为 null, 表示将窗口放置到屏幕中心。

*/

void setLocationRelativeTo(Component comp)

// 设置将窗口 置顶 显示

void setAlwaysOnTop(boolean alwaysOnTop)

// 设置窗口的内容面板

void setContentPane(Container contentPane)

// 设置窗口是否可见, 窗口对象刚创建和添加相应组件后通过 setVisible(true) 绘制窗口, 其内部组件可能要此时才有宽高值

void setVisible(boolean b)

// 判断窗口是否处于显示状态

boolean isShowing()

// 销毁窗口, 释放窗口及其所有子组件占用的资源, 之后再次调用 setVisible(true) 将会重构窗口

void dispose()

// 调整窗口的大小, 以适合其子组件的首选大小和布局。

void pack()

2. 代码实例

package com.xiets.swing;

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class Main {

public static void main(String[] args) {

final JFrame jf = new JFrame("测试窗口");

jf.setSize(400, 400);

jf.setLocationRelativeTo(null);

jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

JPanel panel = new JPanel();

JButton btn = new JButton("Show New Window");

btn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// 点击按钮, 显示新的一个窗口

showNewWindow(jf);

}

});

panel.add(btn);

jf.setContentPane(panel);

jf.setVisible(true);

}

public static void showNewWindow(JFrame relativeWindow) {

// 创建一个新窗口

JFrame newJFrame = new JFrame("新的窗口");

newJFrame.setSize(250, 250);

// 把新窗口的位置设置到 relativeWindow 窗口的中心

newJFrame.setLocationRelativeTo(relativeWindow);

// 点击窗口关闭按钮, 执行销毁窗口操作(如果设置为 EXIT_ON_CLOSE, 则点击新窗口关闭按钮后, 整个进程将结束)

newJFrame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

// 窗口设置为不可改变大小

newJFrame.setResizable(false);

JPanel panel = new JPanel(new GridLayout(1, 1));

// 在新窗口中显示一个标签

JLabel label = new JLabel("这是一个窗口");

label.setFont(new Font(null, Font.PLAIN, 25));

label.setHorizontalAlignment(SwingConstants.CENTER);

label.setVerticalAlignment(SwingConstants.CENTER);

panel.add(label);

newJFrame.setContentPane(panel);

newJFrame.setVisible(true);

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持云海天教程。

java jframe教程_Java Swing JFrame窗口的实现相关推荐

  1. java jframe教程_Java JFrame

    Java JFrame 1 Java JFrame的介绍 javax.swing.JFrame类是一种继承java.awt.Frame类的容器.JFrame的工作原理类似于主窗口,其中添加了标签,按钮 ...

  2. java 透明对话框_java实现jframe透明窗体示例

    java实现jframe透明窗体示例 复制代码 代码如下: import javax.swing.JFrame; public class TansluFrame extends JFrame { p ...

  3. java监控任务进度_Java Swing组件实现进度监视功能示例

    本文实例讲述了java swing组件实现进度监视功能.分享给大家供大家参考,具体如下: 实例一: import java.awt.event.actionevent; import java.awt ...

  4. java使用教程——组件及事件处理——窗口(设置窗口的颜色和背景)

    用JFrame时,设置背景颜色需使用JFrame.getContentPane().setBackground(Color.red) Container con=this.getContentPane ...

  5. java 单行文本_Java Swing界面编程(17)---单行文本输入组件:JTextField

    package com.beyole.util; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.J ...

  6. java jradiobutton使用_Java Swing组件单选框JRadioButton用法示例

    本文实例讲述了Java Swing组件单选框JRadioButton用法.分享给大家供大家参考,具体如下: JRadioButton是Swing中的单选框.所谓单选框是指,在同一个组内虽然有多个单选框 ...

  7. java null布局_Java Swing 绝对布局管理方法,null布局

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.awt.Container; import java.awt.Dimension; import java.awt.Rectang ...

  8. java扫雷教程_java实现简单扫雷游戏

    本文实例为大家分享了java实现简单扫雷游戏的具体代码,供大家参考,具体内容如下 package com.test.swing; import java.awt.event.ActionEvent; ...

  9. java queue 清空_java swing清除事件队列

    可以以标准方式执行此操作吗? 这是场景. 开始在EDT中执行一些昂贵的操作(EDT被阻止,直到昂贵的操作结束为止). 在阻止EDT的同时,用户继续单击/拖动鼠标按钮.所有鼠标动作都记录在某处. 当ED ...

最新文章

  1. NFS简单应用场景及简单的环境搭建
  2. python3 pip3 安装包报错 Could not find a version that satisfies the requirement 解决方法
  3. LightOJ-1028 Trailing Zeroes (I)---因子数目
  4. [YTU]_2916(Shape系列-2)
  5. boost::hana::greater用法的测试程序
  6. 关于Cpp中的类型转换操作符
  7. 27 MM配置-采购-采购申请-定义凭证层的屏幕格式
  8. 在iis6.0上配置Gzip
  9. DPDK 实现的不完全笔记
  10. java中的策略模式_简单了解Java中的策略模式
  11. 使用网络调试助手连接EMQ服务器
  12. java 根据身份证计算年龄(周岁)
  13. win10远程连接win7电脑 -- 局域网实现
  14. 老老实实准备一下java面试(java基础)
  15. nginx根据post请求体内容转发
  16. ONF与天地互连共同成立开放SDN推广中心(OSPC)
  17. 乘法/积运算和符号(点乘/内积/数量积,叉乘/向量积,矩阵乘法,Hadamard, Kronecker积,卷积)一网打尽
  18. CodeForces 285 E.Positions in Permutations(dp+组合数学)
  19. OPPO R8107刷机教程 救砖解锁 刷机包下载
  20. Git | 登录验证失效问题

热门文章

  1. java replace( . )_Java replace() 方法
  2. qq空间经典搞笑留言
  3. Grasshopper for Rhino 7.0 x64 汉化补丁来了,已经接近100%了
  4. Python-面向对象(上)
  5. A1220、A1221、A1222 和 A1223:斩波稳定、精确霍尔效应锁存器
  6. 【编程题】四点构成正方形
  7. 树莓派,摄像头拍照,OLED 显示
  8. 兼容ie浏览器的经验总结
  9. 前端入门教程(二)Web前端与HTML简介
  10. CF#320 Div.2 总结