该演示给出了有关如何获取JFrame组件的示例。在此示例中,我们尝试JFrame从按钮操作侦听器事件获取。为了得到JFrame我们使用的SwingUtilities.getRoot()方法,它将在小程序的下面返回组件树的根组件,该小程序是一个JFrame。

除了获取之外JFrame,在此程序中,我们还执行一些细小的操作,例如,每当用户按下“更改框架颜色”按钮时,将框架背景颜色更改为随机颜色。package org.nhooo.example.swing;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.SwingUtilities;

import javax.swing.WindowConstants;

import java.awt.Color;

import java.awt.Component;

import java.awt.FlowLayout;

import java.awt.HeadlessException;

public class GetFrameDemo extends JFrame {

public GetFrameDemo() throws HeadlessException {

initialize();

}

public static void main(String[] args) {

SwingUtilities.invokeLater(() -> new GetFrameDemo().setVisible(true));

}

private void initialize() {

this.setSize(400, 100);

this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

this.setLayout(new FlowLayout(FlowLayout.CENTER));

final JLabel rLabel = new JLabel("r: ");

final JLabel gLabel = new JLabel("g: ");

final JLabel bLabel = new JLabel("b: ");

JButton button = new JButton("Change Frame Background Color");

button.addActionListener(e -> {

Component component = (Component) e.getSource();

// 返回当前组件树的根组件

JFrame frame = (JFrame) SwingUtilities.getRoot(component);

int r = (int) (Math.random() * 255);

int g = (int) (Math.random() * 255);

int b = (int) (Math.random() * 255);

rLabel.setText("r: " + r);

gLabel.setText("g: " + g);

bLabel.setText("b: " + b);

frame.getContentPane().setBackground(new Color(r, g, b));

});

this.getContentPane().add(button);

this.getContentPane().add(rLabel);

this.getContentPane().add(gLabel);

this.getContentPane().add(bLabel);

}

}

java 获取 jframe 内容_Java如何获取组件的JFrame?相关推荐

  1. java读取ppt内容_Java 读取/获取PPT文本

    import com.spire.presentation.*; import java.io.FileWriter; public class ExtractText { public static ...

  2. java获得sftp目录_Java代码获取SFTP服务器文件

    1 /** 2 *@authorshansm3 * @date 2020/3/18 -17:274 */ 5 public classSFTPUtil {6 7 private transient L ...

  3. java后台怎么获取系统时间_Java 后台获取当前时间

    Calendar c = Calendar.getInstance();//可以对每个时间域单独修改 int year = c.get(Calendar.YEAR); int month = c.ge ...

  4. 在java中图片路径_java中获取图片路径三中方法

    java中获取图片路径的方法 //获取路径三中方法 //+ f.getOriginalFilename(); //String filedir = Thread.currentThread().get ...

  5. java调用office接口_java调用com组件操作word使用总结(jacob)

    ava调用com组件操作word使用总结(jacob) 简单描述 在此处输入简单摘要 特别声明:使用java-com技术可以完成任何VBA可以完成的office文档操作; 一.准备工作 先了解一下概念 ...

  6. java 正则 标签内容_java正则匹配html片段,并取得标签中的内容

    最近java群好友发来一个html代码,要帮忙匹配查找html代码里面特定的内容: 代码如下: 年代:2013年 朝向:东北 楼层:第10层(共33层) 结构:平层 装修:毛坯 住宅类别:普通住宅 建 ...

  7. java 打印异常内容_java自定义异常打印内容详解

    本文实例为大家分享了java自定义异常打印内容的具体代码,供大家参考,具体内容如下 背景:在开发中,我们可能会使用到自定义异常,但是,这个自定义异常在打印日志时,往往打印的内容比较多. 1.自定义异常 ...

  8. Java正则获取小括号中的内容_java正则表达式获取大括号小括号内容并判断数字和小数亲测可用...

    获取大括号小括号内容 项目开发用到了,暂做个简单记录 private static String regex = "\\{([^}]*)\\}";//匹配大括号 private s ...

  9. java 邮件 内容_JAVA怎么获取邮件内容

    网上找了一份James+Javamail构建邮件服务教材,但关于打印该邮件的内容没细讲,直说了一句只要将message[i]对象中的邮件内容等信息读取出来就可以了,求大神指点下//初始化主机Strin ...

最新文章

  1. RHEL5.5学习--安装vmtools
  2. 我是如何学会爱上 Vim 的
  3. 使用Drools跟踪输出
  4. MultiResolution研究
  5. mac系统虚拟机上的Linux系统的使用说明
  6. 我的第二个开源库SuperTextView——中文文档
  7. 命令行中,变量 date time 格式化设定
  8. [paper reading] GoogLeNet
  9. Pytorch中RNN输出的h_n和output是什么
  10. linux 使用VI命令怎么删除输入内容,linux系统vi编辑器常用命令及使用方法。
  11. 毕业设计-基于Springboot实现仓库管理系统
  12. 用海康威视摄像头做图像处理问题
  13. 计算机专业申请美本容易吗,美国纽约大学计算机科学专业申请难度大吗?看完录取要求就明白了...
  14. html语言hr标记,HTML水平线段HR标记详解
  15. 使用Python将微信和支付宝账单导入随手记
  16. Python 基础 之 jupyter notebook 中机器学习的简单入门书写数字识别 demo 操作学习
  17. mysql replication /mysql 主从复制原理
  18. Solr学习之三:Solr各种查询实例
  19. 外贸人常用的几种客户开发渠道
  20. 中日电脑相关词汇(超详版)

热门文章

  1. 设置163的Centos6更新源
  2. 小凡Linux国产网游《时空浩劫》安装+体验
  3. [转]ASP.NET页面HEAD区动态设置全攻略
  4. 讨论用户注册有的几篇好文
  5. OpenJudge NOI 1.7 32:行程长度编码
  6. 第K个幸运排列 (51Nod-1635)
  7. 求递推序列的第N项(51Nod-1126)
  8. 计算三角形面积(信息学奥赛一本通-T1034)
  9. 57 FI配置-财务会计-固定资产-资产数据传输-定义传输日期和附加参数
  10. noip2014到2017初赛普及组看程序写结果、完善程序