定义包名 为了给一个类库生成不会于其他名字混淆的名字,Java的包名采用反转域名来定义,整个包名使用小写,句点用来代表子目录的划分:com.packagename.utility 使用其他类库 import...指示编译器导入一个包,也就是一个类库:import java.util.ArrayList 这行代码告诉编译器,想要使用Java的ArrayList类。...安装好JDK后需要设置classpath,以确保计算机能找到javac和java这两个文件 以上都准备好后,将以上文件保存到一个以.java为结尾的文件中,并在命令行执行javac filename.java...JVM就是一个虚拟的用于执行bytecode字节码的“虚拟计算机” JRE包含:Java虚拟机、库函数、运行Java应用程序所必须的文件。...运行一个JAVA程序 JDK:包含JRE,以及增加编译器和调试器等用于程序开发的文件。开发Java程序
使用getWidth()方法即可获取窗口的宽度。...示例代码: import javax.swing.JFrame; public class Main { public static void main(String[] args) {...frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } 执行上述代码后,控制台输出的结果将为...:窗口宽度:500,即窗口的宽度为500。
package com.swing; import java.awt.Color; import java.awt.Container; import java.awt.event.WindowAdapter...; /** *1:Swing组件通常被称作"轻量级的组件"; * *2:窗体作为Swing应用程序中组件的承载体,处于非常重要的位置,Swing中常用的窗体包括 *JFrame,JDialog... * *3:JFrame窗体是一个容器,它是Swing程序中各个组件的载体,可以将JFrame看作是承载这些 *Swing组件的容器 * *4:读者大致应该有这样一个概念 *Swing组件的窗体通常和组件的容器相关...JFrameTest(); jf.CreateJFrame("创建一个JFrame窗体"); } } //实例演示JLabel标签的使用,实例化JLabel对象,然后将标签实例添加到容器中...,然后可以设置容器的布局, package com.swing; import java.awt.Color; import java.awt.Container; import javax.swing.JFrame
一直以来都不喜欢Java的GUI程序,界面丑陋,而且感觉功能也不强大,但是为了跨平台也没办法! 今天在完成一个JDialog,界面中有删除按钮,用户点击后删除特定的组件。...其实,自己Java Swing也是边学边用,搞了一下午,自己先使用removeAll()方法删除组件,然后实验了什么repaint()方法,validate()都不行。 ...网上也没搜到资料,最终瞎折腾了一下午找到了方法,但是对于其中的原理还是不太清楚。 ...(); this.contentPanel.setVisible(true); addComponent()方法是我自己写的动态添加组件的方法。...写出来与大家分享,如果有类似问题的可以参考下!
内容 在最简单的级别,文本可以建模为线性字符序列。 为了支持国际化,Swing文本模型使用unicode字符。 文本组件中显示的字符序列通常称为组件的内容 。...要引用序列中的位置,使用的坐标是两个字符之间的位置。 如下图所示,文本文档中的位置可以称为位置或偏移。 这个位置是从零开始的。 ?...在该示例中,如果文档的内容是序列“The quick brown fox”,如上图所示,则单词“The”之前的位置为0,并且单词“The”之后的位置和之前的位置它后面的空格是3.序列“The”中的整个字符序列称为范围...以下方法与文档内容的变异有关: insertString(int, java.lang.String, javax.swing.text.AttributeSet) remove(int, int) createPosition...与属性相关的方法是: getProperty(java.lang.Object) putProperty(java.lang.Object, java.lang.Object) 有关Document
首先需要在工程中导包,需要用到JRE中的rt.jar包,我的JDK安装在C盘,目录如下:C:\Program Files\Java\jre7\lib\rt.jar。...我们用到的类是rt包中的com.sun.awt.AWTUtilities。...(遗憾的是导入该包后,程序就不具有跨平台性了) 程序代码如下: import java.awt.MouseInfo; import java.awt.Point; import java.awt.event.WindowAdapter...; import java.awt.event.WindowEvent; import javax.swing.JEditorPane; import javax.swing.JFrame; import...; import com.sun.awt.AWTUtilities; /** * @author zhenyu tan * 2014年4月2日 * 使用到了JDK1.6中新特性的透明窗体,所以必须要使用
package com.swing; import java.awt.Color; import java.awt.Component; import java.awt.Container; import...javax.swing.SwingConstants; import javax.swing.WindowConstants; /** * 1:在Swing中显示文本或提示信息的方法是使用标签,它支持文本字符串和图标...* * 4:Swing上面的图标可以放置在按钮,标签,等组件上面,用于描述组件的用途 * * 5:Swing中通过Icon接口来实现创建图表,可以在创建时给定图标的大小,颜色等特性 *...; /** * 1:Swing中的图标除了可以绘制以外,还可以使用某个特定的图片创建。...URL url=MyImageIcon.class.getResource("imageButton.jpg"); //java.lang.Class类中的getResource()方法可以获取资源文件的
游戏截图 飞机项目的所有类的截图 主窗体类 package com.tarena.shout; import java.awt.Graphics; import java.awt.Image; import...java.awt.image.BufferedImage; import java.util.Random; import javax.imageio.ImageIO; import javax.swing.JFrame...; import javax.swing.JPanel; import com.tarena.shout.ShootGame.KeyMonitor; import com.tarena.shout.ShootGame.PaintTread...} int flyEnteredIndex=0; public void enterAction(){//10毫秒走一次 //创建敌人对象 //将敌人对象添加到FlyingObject中...private int doubleFire; private int speed=8; private BufferedImage[] images; private int index; public
图2-7所示的小应用程序中与File菜单相关联的弹出式菜单是一个轻量组件,所以它在重量组件AWT按钮的下面显示。 例2-8列出了图2-7所示的小应用程序的代码。 ...例2-8 在重量组件下面显示的轻量弹出式菜单 import javax.swing.*; import java.awt.*; import java.awt.event.*; public...例2-9列出了图2-8所示的小应用程序的代码 例2-9 使用重量弹出式菜单 import javax.swing.*; import java.awt.*; import java.awt.event...例2-12 列出了图2-11所示的小应用程序的代码 例2-12把重量组件添加到Swing内部窗体中 import java.awt.*; import java.awt.event.*; import...首先,我们要讨论为什么Swing是线程不安全的,然后介绍在Swing开发过程中单线程设计所带来的结果。 让我们面对这个事实,甚至在java中,开发多线程的应用程序也是不容易的。
package com.swing; import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent...; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JDialog; import...窗体时Swing组件中的对话框, * JDialog的功能就是是从一个窗体中弹出另一个窗体,就像是在使用浏览器时弹出的确定对话框一样 * * 2:JDialog窗体和JFrame窗体类似,在使用时也需要调用...getContentPane()方法将 * 窗体转化为容器,然后在容器中设置窗体的特性 * * 3:JDialog有五种构造方法,可以用来指定标题,窗体,和模式的对话框 * @author biexiansheng... jl.setHorizontalAlignment(JLabel.CENTER);//将标签中的文字置于标签中间的位置 container.add(jl);//将标签添加到容器中
二.开发环境 开发环境:jdk 运行环境:jvm 运行平台:无限制 编辑器:eclipse 语言:java 工具:swing 数据库:mysql 三...(5)scrap负责显示已报废的设备信息 选项卡中的equipment和buy界面由ManageFrame负责创建,对应方法为createEquipmentPanel()和createBuyPanel...(),通过返回自定义的JPanel匿名内部类创建 选项卡中的running、repair、scrap界面分别是InfoRunPanel、InfoRepairPanel、InfoScrapPanel类的实例...ComponentUtil 包含自定义一些常用swing组件 ConnectionUtil 数据库连接类 DatabaseXmlParser 解析db.xml,获取数据库配置信息 DateChooser...(2) 录入购买的设备信息 输入设备信息 ? 在equipment中查看设备 ? (4) 管理设备状态 例:设置状态为run ? ? (5) 查看设备状态 ?
大家好,又见面了,我是你们的朋友全栈君。...构建对象 class User{ private String addr } 将多个User集合中的addr按照;分割合并成一个字符串list List uList = Lists.newArrayList...) 这个实现方式是由问题的,传递给map方法的lambda为每个单词生成了一个String[](String列表)。...因此,map返回的流实际上是Stream 类型的。你真正想要的是用Stream来表示一个字符串。...,各个数组并不是分别映射一个流,而是映射成流的内容,所有使用map(Array::stream)时生成的单个流被合并起来,即扁平化为一个流。
G:\java_test_two>javac -encoding utf-8 -d . Hello.java 编译成功后会在app文件夹中生成Hello.class文件。...上面的代码中明显区分java.applet.Applet和javax.swing.JApplet,前者能够直接添加组件,而后者需要使用面板来添加。...对于JApplet的第一种添加构件形式 import javax.swing.JApplet; import javax.swing.JButton; public class Test2 extends...(每个JApplet都有一个默认的面板) 对于JApplet的第二种添加构件的形式 import javax.swing.JApplet; import javax.swing.JButton; import...在计算机二级中,只需要死记以上几种方法的作用即可。 8.applet加载图片 9.
概述 在Java 8中引入的forEach循环为程序员提供了一种新的,简洁而有趣的迭代集合的方式。...基础知识 public interface Collection extends Iterable Collection 接口实现了 Iterable 接口,而 Iterable 接口在 Java...8开始具有一个新的 API: void forEach(Consumer的操作包含在实现Consumer接口的类中,并作为参数传递给forEach 。 所述消费者接口是一个功能接口(具有单个抽象方法的接口)。它接受输入并且不返回任何结果。...让我们看看我们将使用forEach方法的另外2种最流行的方式: Lambda表达式 Java 8功能接口的主要优点是我们可以使用Lambda表达式来实例化它们,并避免使用庞大的匿名类实现。
(name),以及球员性别(sex),球员年龄(age),以及他们的球队名称(team_name),和登录密码(password),表设计如下:然后往该表中添加模拟数据,如下图:二、架构设计2.1 总体设计首先...添加菜单对应的就是Add类,然后还有修改菜单的Alter类,删除菜单对应的DelMin类,按姓名查询对应的NameQue类,和按球号查询对应的IdQue类,和模糊查询对应的LikeQue类。...这些都是需要我们去重写的.然后还有就是当添加球员的时候,需要有一个保存球员信息到数据库的方法,这里对应的就是saveTo方法。...完整的类图如下:这里还有最关键的一点就是说,球队名称的话,这里是写死了一个数组在这里的,teams数组代表的就是球队名称。...从而根据球号来进行一个删除,类图如下:3.7 Alter类设计更改球员信息类也是一样,只是当点击修改按钮的时候,需要首先执行showInfor方法,去数据库中查询该球员的一个信息,从而回显到界面中去。
翎野君/文 流的概念 1.流是什么 流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不是临时编写一个实现)。...集合是一个内存中的数据结构,它包含数据结构中目前所有的值,集合中的每个元素都得先算出来才能添加到集合中。...即,可以往集合里加东西或者删东西,但是不管什么时候,集合中的每个元素都是放在内存里的,元素都得先算出来才能成为集合的一部分。...使用for-each循环外部迭代 使用其背后的迭代器做外部迭代 使用流做内部迭代 流操作 java.util.stream.Stream中的Stream接口定义了许多操作。...forEach和count等终端操作会返回一个非流的值,并处理流水线以返回结果。 流中的元素是按需计算的。
Java8之前,从map中根据key获取value操作可能会有下面的操作 Object key = map.get("key"); if (key == null) { key = new Object...(); map.put("key", key); } Java8之后,上面的操作可以简化为一行,若key对应的value为空,会将第二个参数的返回值存入并返回。...首先,判断此 map 中是否存在指定 key 的值 v = get(key): 如果存在(v !...= null),那就直接返回这个 v ( return v ); 如果不存在( v == null),会调用 mappingFunction(key)计算key的value,然后将key = value...如果mappingFunction(key)返回的值为null或抛出异常,则不会有记录存入map。
Java 8 中的 Stream 是对集合(Collection)对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk...所以说,Java 8 中首次出现的 java.util.stream 是一个函数式语言+多核时代综合影响的产物。...Java 的并行 API 演变历程基本如下: 1.0-1.4 中的 java.lang.Thread 5.0 中的 java.util.concurrent 6.0 中的 Phasers 等 7.0 中的...Java 8 中还没有提供其它数值型 Stream,因为这将导致扩增的内容较多。而常规的数值型聚合运算可以通过上面三种 Stream 进行。...Java 8 中还没有提供其它数值型 Stream,因为这将导致扩增的内容较多。而常规的数值型聚合运算可以通过上面三种 Stream 进行。 清单 5.
概述在本篇文章中我们对可以在 Java 8 中的设计模式策略(strategy design pattern)进行一些简单的说明。如果你对 Java 的设计模式不是非常清楚的话,可以先自行脑补下。...我们简单的总结就是将以前 Java 使用的接口和实现的设计模式,在 Java 8 中可以使用 lambda 函数来进行简化。...在下面内容中,我们首先提供了一个简单的设计模式样例,以及在传统的环境下我们是怎么实现这个设计模式的。随后,我们将会使用 Java 8 中的 lambda 函数来进行实现,然后介绍一些有什么不同的地方。...8 中使用静态方法,然后这个定义将会在一个类中完成。...结论在本代码中,我们对 Java 8 中的设计模式策略(strategy design pattern)进行一些简单的说明,因为 lambda 表达式的使用,让我们能够使用更少的代码实现更多的功能。
作者:汤圆 个人博客:javalover.cc 前言 大家好啊,我是汤圆,今天给大家带来的是《Java8中的默认方法》,希望对大家有帮助,谢谢 文章纯属原创,个人总结难免有差错,如果有,麻烦在评论区回复或后台私信...,谢啦 简介 在Java之前,我们接触到的接口,都是只定义方法,不实现方法 (你看下面这几个人,像不像接口) 但是到了Java8就不一样了,因为在接口中新增了默认方法 这样的话,有些活,就可以交给接口自己去做了...所以Java8开始,推出了接口的默认方法这个功能,使得接口升级变得更加平滑 比如下面的代码:InterfaceDemo就是上面那个接口 public class UserDemo implements...但是现在面临的一个新问题,就是多重继承带来的二义性问题,有点类似之前介绍的致命方块(也叫菱形问题) 如下面的UML图所示 比如上面这种,你无法知道A会调用哪个接口的fun方法 所以编译器会报错: com.jalon.java8...com.jalon.java8.defaultmethod.C 解决办法: 先覆写fun方法 再显示声明调用哪个接口的fun方法 代码如下: public class A implements B