Swing基本操作:

JAVA显示一个带按钮的窗口:

  1. import java.awt.*;
  2. import javax.swing.*;
  3. import javax.swing.border.EmptyBorder;
  4.  
  5. public class FrameDemo extends JFrame {
  6.  
  7. /**
  8. * 在这里定义窗体中需要用到的组件
  9. */
  10. private JPanel contentPane; //面板
  11. private JButton button; //按钮
  12.  
  13. /**
  14. * 在主函数中创建Frame类实例
  15. * 启动该应用。
  16. */
  17. public static void main(String[] args) {
  18. EventQueue.invokeLater(new Runnable() {
  19. public void run() { //启动窗口
  20. try {
  21. FrameDemo frame = new FrameDemo(); //窗体
  22. frame.setVisible(true); //设置窗体可见
  23. } catch (Exception e) {
  24. e.printStackTrace();
  25. }
  26. }
  27. });
  28. }
  29.  
  30. /**
  31. * 在本类构造函数中对组件进行初始化
  32. * 创建窗体。
  33. */
  34. public FrameDemo() {
  35. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //关闭窗体时结束本进程
  36. this.setBounds(100, 100, 450, 300); //设置窗体大小位置
  37. contentPane = new JPanel(); //创建面板
  38. contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); //设置边框
  39. contentPane.setLayout(new BorderLayout(0, 0)); //设置布局
  40. this.setContentPane(contentPane); //将面板添加到窗体中
  41.  
  42. button = new JButton("按钮");   //按钮
  43. contentPane.add(button, BorderLayout.CENTER); //将按钮添加到面板contentPane中
  44. }
  45.  
  46. }

执行结果:

其中,FrameDemo类继承了Frame(窗体)类,在主函数中被实例化为Frame对象frame,此时,默认的窗体是不可见的,须对其进行如下操作:

  1. frame.setVisible(true); //设置窗体可见

(设置Visible属性为true)

才能将窗体显示出来

另外,这段代码很关键:

  1. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗体时结束本进程

如果没有这行代码,会出现点击关闭按钮后,窗体虽然被销毁,但是程序进程依然存在,浪费资源的问题。

JAVA GUI窗体及控件的更多相关文章

  1. C# 委托实例(跨窗体操作控件)

    在C#里面却是可以不用自定义消息这么复杂的方法来实现跨窗体调用控件,C#有更好的办法就是委托. 效果描述:有两个窗体,FORM1(一个名为“打开form2”的button控件)和FORM2(一个名为“ ...

  2. Winform 获取当前单击的控件名称 和 向窗体添加控件

    Winform如何获取当前单击的控件名称,比如有100个Button 和一个button_Click()的按钮事件 ,分别点击不同按钮后显示所点击的按钮名称?private void button_C ...

  3. 实现虚拟模式的动态数据加载Windows窗体DataGridView控件 .net 4.5 (一)

    实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624 ...

  4. WinForm窗体及其控件的自适应

    3步骤: 1.在需要自适应的Form中实例化全局变量   AutoSizeFormClass.cs源码在下方 AutoSizeFormClass asc = new AutoSizeFormClass ...

  5. C#遍历窗体所有控件或某类型所有控件

    //遍历窗体所有控件, foreach (Control control in this.Controls) { //遍历后的操作... control.Enabled = false; } 遍历某个 ...

  6. 在C#中子线程如何操作主线程中窗体上控件

    在C#中,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能 简单的通过控件对象名来操作,但不是说不能进行操作,微软 ...

  7. [WinForm] 使用反射将业务对象绑定到窗体或控件容器

    在WebForm中,可以使用反射将业务对象绑定到 ASP.NET 窗体控件.最近做Winform项目,也参考WebForm中的代码实现同样的功能.     Winform没有提供类似WebForm中的 ...

  8. C#跨窗体调用控件(委托回调函数使用例子)

    问题: 有两个窗体,FORM1(含一个label控件,一个名为显示form2的button控件)和FORM2(含一个button控件).启动时,FORM1中点击button控件显示form2使FORM ...

  9. Winform跨窗体操作控件(使用委托)

    Winform跨窗体操作控件是winform开发中很常见的形式,最常见且简单有效的方式便是使用委托的方式来进行操作,下面我将通过一个小实例来说明如何使用委托跨窗体实现控件操作. 实例介绍:两个窗体,F ...

随机推荐

  1. 关于video++,jsrun,有道笔记等的感想

    这几天一直在思考切入点.想了很多,有关于给初创企业提供社交平台营销的,如公众号,小程序,支付宝的到位,附近等.这些初看起来可行,细想起来有一些根本不完备.如通过微小宝多平台客户端了解最热的内容,在内容 ...

  2. vue入门基础知识点测试

    vue入门基础知识点测试 1.文本(值绑定){{var}}----控制<div></div>的值显示当前时间,且1秒更新一次.(可查阅 setinterval 函数,时间Dat ...

  3. ALSA driver--Asoc

    https://blog.csdn.net/zyuanyun/article/details/59170418 ALSA Asoc框架如下图: Asoc分为machine,platform,codec ...

  4. P&R 5

    Floorplan: 要做好floorplan需要掌握哪些知识跟技能? 通常,遇到floorplan问题,大致的debug步骤跟方法有哪些? 如何衡量floorplan的QA? 芯片的整体架构模块划分 ...

  5. Linux下mysql使用systemctl restart mysqld命令失败

    Linux下mysql使用systemctl restart mysqld命令失败: 解决方法:将mysql赋予root的权限 vim /etc/passwd 找到mysql开头的一行文件mysql: ...

  6. 在 input 上添加图标字体时无法添加的问题

    效果:一个搜索框.如图: 实施过程:一开始,将搜索框分为2部分,用2个 input ,一个 search ,一个 button ,然后给 type="button" 的input ...

  7. SoapUI学习(1)- WebService基础

    转载:http://luyongxin88.blog.163.com/blog/static/92558072011320101454287/ WebService 它是一种构建应用程序的普遍模型,可 ...

  8. opencv python:图像二值化

    import cv2 as cv import numpy as np import matplotlib.pyplot as plt # 二值图像就是将灰度图转化成黑白图,没有灰,在一个值之前为黑, ...

  9. 如何让DOS命令在新窗口打开

    可以调用别外的批处理如 start a.batstart b.batstart c.bat 新建a.bat.B.BAT.C.CAT,在这几个批处理中输入你的命令. 以上我自己测试通过.

  10. aria2连接网站出现handshake failure问题的分析与解决方法

    aria2是一款轻量级的,支持多协议,跨平台的命令行下载工具,是笔者目前在使用的下载工具,结合uget使用基本上能媲美window下的迅雷工具.在笔者使用过程中,遇到了aria2连接部分网站时出现ha ...