创建一个JFrame

下面用简单的实例演示了Java Swing创建一个能输入内容的窗口

public class frameTest(){
  public static void Main(String args[]){
    //创建JFrame对象,JFrame用来在屏幕上显示一个Windows窗口。
    JFrame frame = new JFrame("第一个JFrame");   
    // 建立一个文本输入域对象,由于文本输入域是JComponent的子类,可以采用以
    // 下方法定义。
    JComponent comp = new JTextArea();
    // 将上面建立的文本输入域加入到frame对象
    // 默认情况下,frame的内容面板(容器)采用BorderLayout布局,
    // 这里是将文本输入域放入BorderLayout布局的Center部位。
    // 有关BorderLayout布局的内容,请查阅
    //   http://gyfinjava.blog.com.cn/archives/2007/2161340.shtml
    frame.getContentPane().add(comp, BorderLayout.CENTER);
    // 设置其高度和宽度分别为:288像素和188像素
    frame.setSize(288,188);
    // 显示该Frame
    frame.setVisible(true);
  }
}

JFrame的预定义动作事件

在Java Swing教程1中的Main方法中加入以下代码:

//当用户选择窗口的退出按钮(窗口右上角的X),
//或选择窗体功能菜单的推出项时的动作

//下行代码可以使单击退出按钮时,退出该JFrame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//下行代码可以使JFrame的退出按钮失效
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

创建没无边框的Frame(Window)

该实例演示了怎样创建一个没有边框的Frame(Window)。如果要创建
不显示边框的Frame(Window),则推荐使用JWindow。

import javax.swing.JWindow;

public class JWindowTest {
 public static void main(String[] args){
  //创建JWindows对象
     JWindow window = new JWindow();
     // 这里,一样可以通过教程getContentPane().add()方法为该JWindow增加组件
     //window.getContentPane().add(JComponent, BorderLayout.CENTER);
     // 设置初始化大小
     window.setSize(200, 200);
     // 显示该窗体
     window.setVisible(true);
 }
}

Java Swing教程4-文件选择框

Java为文件选择框提供了JFileChooser类API。通过使用该类,可以很方便的现实文件选择对话框。见下例:

//建立文件选择框对象
JFileChooser fc=new JFileChooser();
//设定文件选择框标题
fc.setDialogTitle("Open class File");
//显示文件选择框,在选择后将结果储存到returnVal变量中
int returnVal = fc.showOpenDialog(app.getFrameInstance());
//如果用户选择了文件,并点击了"Opne/打开"按钮,显示用户选择的文件全名路径,
//如果用户点击"Close/关闭"按钮,以及其它方式退出文件选择框,则什么也不做。
  if (returnVal == JFileChooser.APPROVE_OPTION){
   File file = fc.getSelectedFile();
   System.out.println(file.getPath());
  }

注意在文件选择对话框中,可以进行选择目录的操作,只需要用FileChooser对象的setFileSelectionMode()方法指定其选择模式为目录选择。见下面代码

//上例中可以在文件对话框显示语句前加上下面代码,使对话框成为目录选择对话框
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

在文件选择过程中,我们可以为文件选择对话框设置过滤器,有了过滤器的对话框,会用下拉列表的方式将过滤的文件名特征显示在"文件类型"组合框中,并将不符合条件的文件名和目录名过滤掉(不显示)。

为一个文件选择对话框设置过滤器需要定义过滤器类,见下例:

public class ClassFileFilter extends FileFilter{
 public boolean accept(File f) {
  String filename = f.getName();
        return filename.endsWith(".class");
 }
 public String getDescription() {
  return "*.class";
 }
}

该类定义了一个过滤Java类文件"*.class"的过滤器。
将它增加到文件选择对话框中,可以过滤出以.class为尾缀的文件。见下面代码:

fc.addChoosableFileFilter(new ClassFileFilter());

针对一个对话框,我们可以为其加装多个过滤器。这里有对过滤器更加诠释的代码:
public class ImageFilter extends FileFilter {
    //Accept all directories and all gif, jpg, tiff, or png files.
    public boolean accept(File f) {
        if (f.isDirectory()) {
            return true;
        }
        String extension = Utils.getExtension(f);
        if (extension != null) {
            if (extension.equals(Utils.tiff) ||
                extension.equals(Utils.tif) ||
                extension.equals(Utils.gif) ||
                extension.equals(Utils.jpeg) ||
                extension.equals(Utils.jpg) ||
                extension.equals(Utils.png)) {
                    return true;
            } else {
                return false;
            }
        }
        return false;
    }
    public String getDescription() {
        return "Just Images";
    }
}
该过滤器为图像文件过滤器。

Java Swing教程5-JTable

利用J2SE提供的JTable组件类可以很方便的实现应用程序中的表格功能,以实例阐述如下:

该实例运行结果如下:

其代码如下:

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class Test01 {
 public static void main(String[] args) {
  //声明列名数组
  String[] columnNames = { "姓名", "性别", "年龄", "籍贯", "婚否" };
  //声明数据二维数组
  Object[][] data = {
    { "赵刚", "男", new Integer(18), "北京", new Boolean(false) },
    { "钱霞", "女", new Integer(28), "北京", new Boolean(true) },
    { "孙大伟", "男", new Integer(32), "上海", new Boolean(false) },
    { "李民", "男", new Integer(30), "南京", new Boolean(true) },
    { "周丽丽", "女", new Integer(34),"重庆",new Boolean(false) } };
  //创建JTable对象t
  final JTable t = new JTable(data, columnNames);
  //设置JTable对象的可视区,超出部分会用下面的滚动条来显示
  t.setPreferredScrollableViewportSize(new Dimension(400, 70));
  //定义一个容器
  JPanel p = new JPanel();
  //在容器中加入表格和滚动条
  p.add(t);
  JScrollPane s = new JScrollPane(t);
  p.add(s);
  //设置容器为透明的
  p.setOpaque(true);
  //以下代码在前几个Java Swing教程中已经讲过,这里不重复!
  JFrame f = new JFrame("JTable测试!");
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  f.getContentPane().add(p,BorderLayout.CENTER);
  f.pack();
  f.setVisible(true);
 }
}

JFrame和Swing控件相关推荐

  1. JAVA知识点梳理第四部分——Swing控件

    JAVA整理知识点传送门: JAVA知识点拉理第一部分--常规知识 JAVA知识点梳理第二部分--接口.内部类.异常等等 JAVA知识点梳理第三部分--图形用户界面GUI部分 JAVA知识点梳理第四部 ...

  2. java swing 控件拖动_java swing中实现拖拽功能示例

    java实现拖拽示例 Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图: package com; import java.awt.*;import java.awt.datat ...

  3. 解决Swing控件setEnabled(false)时的字体颜色

    https://blog.csdn.net/u012505618/article/details/50125363 在设置Swing输入控件(主要是JCombobox.JTextField.JSpin ...

  4. java swing控件大全_java swing 组件大全(新手快进)

    import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.tree.*; import  ...

  5. 设计个人介绍界面(用SWING控件),并添加各种组件练习

    实验效果图如下: 源代码如下: package introduce;import java.awt.Container; import java.awt.FlowLayout; import java ...

  6. java swing 控件_Java Swing组件

    一.        java swing 组件技术简介 1.swing的特性 l  是AWT的扩展,swing比AWT提供了更多的组件和外观 l  它是纯java代码编写(除了JFrame.JDial ...

  7. Java Swing控件样式设置

    2019独角兽企业重金招聘Python工程师标准>>> 1.设置JTable的背景色 一般情况下,设置JTable背景色的时候,只能设置有数据行的背景色,对于默认的底色部分还是没法设 ...

  8. java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

    本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...

  9. Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

    本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...

最新文章

  1. dataTables常用参数
  2. Solr 4.x定时、实时增量索引 - 修改、删除和新增索引
  3. 谷歌高管又变动:AI 研究部门元老即将离职
  4. HBase的安装、写入和查询操作
  5. c语言插入排序算法伪代码,排序算法——插入排序(C语言实现)
  6. gitlab run成功 但无法访问_gitlab 部署 管理
  7. 计算机二级题31套资料,计算机等级考试:二级VFP机试第31套
  8. 4.50Nginx负载均衡
  9. 六十、走进位运算的大门
  10. 二级路由dhcp关闭连不上wifi_酒店网络故障:原来还与DHCP服务器有关
  11. [css] transition、animation、transform三者有什么区别?
  12. 惠普台式计算机系列,惠普发布设计笔记本、设计台式电脑等Z系列产品
  13. Apache ActiveMQ 远程代码执行漏洞记录(CVE-2016-3088,端口:8186)
  14. 硬纪元AI峰会前瞻:线下大数据驱动下的新零售,目标是精准营销
  15. 中国无线电频率分配表
  16. 物联网通信技术课程安排
  17. Theano与其他深度学习框架的比较
  18. 私网ip和公网ip_详解
  19. jax_ws_JAX-RS和OpenAPI对Hypermedia API的支持:任重而道远
  20. HbuilderX开发App调用手机支付宝支付

热门文章

  1. 利用一个竞态漏洞root三星s8的方法
  2. 多因子模型的前世今生
  3. Python ------ return返回值等
  4. 计算机配置8c16g,腾讯云服务器价格表(1核2G/2核4G/4核8G/8核16G配置)
  5. 网易互联网产品运营管培生面试经历--从群面到终面面试经验分享
  6. 玩转场景化推送,精准把握受众
  7. Mac 搭建一个本地JRebel破解服务器
  8. 网页框架布局设计_实用的网页设计-框架和框架用法介绍
  9. connect holder is null问题记录
  10. Python3的unichr()消失了?不,升级了!