在Java学习的过程中,我们时常会因为控制台程序的枯燥而失去了学习Java的乐趣,那么今天我们就开始学习Java的Swing。也就是GUI(Graphical user interface),在应用到GUI时,你就可以体会到编程的乐趣。

下面我就以我编写的一个程序结果为例,向大家阐述一下,在Java中如何建立窗口以及容器中组件的布局。程序运行结果如下:

首先从图片本身开始分析:我们可以看到一个窗口,在窗口上面有这么五个按钮,然后五个按钮分部在这个窗体的边界。于是有了边界布局。从程序上面我们也是运用这样的逻辑实现的。创建窗口运用到java.awt.Frame类

代码如下:

//调用父类的一个构造方法,创建一个标题为“边界布局”的窗口
super("边界布局");
//设置窗口的大小,以像素为单位
this.setSize(200,300);
//设置窗口的起始位置(左上角坐标)
this.setLocation(100,100);
//设置窗口关闭时的默认操作
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

然后是创建按钮

//实例化面板对象
p = new JPanel();
//创建一个边界布局管理器对象,并把布局设置到面板中
p.setLayout(new BorderLayout());
b1 = new JButton("Button 东");
b2 = new JButton("Button 西");
b3 = new JButton("Button 南");
b4 = new JButton("Button 北");
b5 = new JButton("Button 中");

最后是将按钮加入到面板中,并设置布局方式

 p.add(b1,BorderLayout.EAST);
p.add(b2,BorderLayout.WEST);
p.add(b3,BorderLayout.SOUTH);
p.add(b4,BorderLayout.NORTH);
p.add(b5,BorderLayout.CENTER);

其中包含的类是java.awt.BorderLayout;主要的代码就是这些。

完整的代码如下:

 package com.example;
import java.awt.BorderLayout;
import javax.swing.*; public class BorderLayoutDemo extends JFrame{
private JPanel p;
private JButton b1,b2,b3,b4,b5;
public BorderLayoutDemo(){
super("边界布局");
p = new JPanel();
//创建一个边界布局管理器对象,并把布局设置到面板中
p.setLayout(new BorderLayout());
b1 = new JButton("Button 东");
b2 = new JButton("Button 西");
b3 = new JButton("Button 南");
b4 = new JButton("Button 北");
b5 = new JButton("Button 中"); p.add(b1,BorderLayout.EAST);
p.add(b2,BorderLayout.WEST);
p.add(b3,BorderLayout.SOUTH);
p.add(b4,BorderLayout.NORTH);
p.add(b5,BorderLayout.CENTER); this.add(p);
this.setSize(1000,1000);
this.setLocation(100,100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[]args){
BorderLayoutDemo f = new BorderLayoutDemo();
f.setVisible(true);
}
}

Java Swing学习的更多相关文章

  1. Java Swing学习笔记——创建JFrame

    创建显示一个空JFrame import javax.swing.JFrame; public class JFrameDemo extends JFrame{ public JFrameDemo() ...

  2. Java Swing 资料(转载学习)

    Swing图像界面简介:https://blog.csdn.net/xietansheng/article/details/72814531 Swing实用经验总结篇:https://blog.csd ...

  3. Java swing项目-图书管理系统(swing+mysql+jdbc) 总结

    (一)java Swing的学习. (1)学习如何安装windowbuilder插件的安装. <1>在eclipse中点击help <2>在help的下拉选中选择install ...

  4. Java Swing快速构建窗体应用程序

    以前接触java感觉其在桌面开发上,总是不太方便,没有一个好的拖拽界面布局工具,可以快速构建窗体. 最近学习了一下NetBeans IDE 8.1,感觉其窗体设计工具还是很不错的 , 就尝试一下做了一 ...

  5. Java Swing的进化

    摘 要:Swing已是一个比较老的工具集了,在美观的用户界面出来之前需要开发很长时间.它缺少一些你在开发富UI时所需的组件.幸运地是,像 Substance,SwingX及Java Look-and_ ...

  6. Java Swing界面编程(1)

    写多了jsp,对于页面式的系统已经写烦了,本人也開始着手于java swing的学习,作为菜鸟,仅想用博客记录下我的swing学习的历程.话不多说,首先開始我的第一个窗体化程序. 下面给出源码: pa ...

  7. Java Swing 使用总结(转载)

    随笔转载自:此去经年ぢ 地址:http://www.cnblogs.com/FLFL/p/5369756.html 1.     GUI编程引言 以前的学习当中,我们都使用的是命令交互方式: 例如:在 ...

  8. 客户端是选择Java Swing还是C# Winform

      登录|注册     mentat的专栏       目录视图 摘要视图 订阅 [专家问答]韦玮:Python基础编程实战专题     [知识库]Swift资源大集合    [公告]博客新皮肤上线啦 ...

  9. Swing学习1——总体概述

    以下来自于JDK1.6 一.Swing学习我划分为两个方面: 一方面Swing的界面设计部分,包括相关组件类的继承关系,组件的功能用途,布局管理: 1.首先继承关系上自上而下为 java.lang.O ...

随机推荐

  1. 201521123030 《Java程序设计》 第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  2. ecshop商城系统登录出现登录闪退问题

    症状:ecshop商城系统提示登录成功,而且状态也是登录,一刷新,自动退出了,真坑爹 解决方案: 1.点着点着经常无故退出,感觉session被清空了.查找原因:ecshop中有用ip地址来验证,而公 ...

  3. Babel初体验

    原文地址:→传送门 写在前面 现在es6很流行,尽管各大浏览器都还不能支持它的新特性,但是小伙伴们还是很中意它呀,于是小小的学习的一下 Babel 这里我们不介绍es6相关内容,只是说下入坑前奏,记录 ...

  4. 如何写好git commit message

    1.触发事件 我有这样一个版本库,里面包含两个学习用的练习项目:BookStore(以下简称BS)和PictureFriend(以下简称PF) 我在更改PF以后,未进行提交,同时又到BS中优化了一下文 ...

  5. Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

    Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession ...

  6. 一步一步带你做WebApi迁移ASP.NET Core2.0

    随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP ...

  7. Invoke 用法

    转自:http://blog.sina.com.cn/s/blog_5a6f39cf0100s23x.html 在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法 ...

  8. linux学习笔记:1.基础知识和命令行基本操作

    初次学习linux系统,想在这里记录自己的学习痕迹,如发现有不足之处,希望能指出,谢谢啦,之后的学习是在虚拟机VMware 10下的Red Hat Enterprise linux 6 的操作. 一. ...

  9. “==”与"equals(object)"的区别

    一.对于基本数据类型而言只能用“==”,不能用equals来进行比较,若使用equals来进行比较,则不能通过编译 二.在非字符串的对象的比较中: “==”与“equals()”比较的均是对象在堆内存 ...

  10. C++格式化硬盘程序

    #include using namespace std; //声明命名空间 void main() {  char format[12]="format", name[10], ...