想要写出一个完整的界面,固定大小是必须的,因为放大缩小或多或少都让界面产生一些变化,除非你的代码很高级,不管我怎么拉界面都会以一个合理的布局来展示,当然这太难了,设定固定大小是最省事的了。...网上搜索的内容大多是 MainWindow 类型的,博主用的类型是 QWidget 的,前者的方法用了发现都不能用,为了能固定界面的大小也是踩了不少坑,终于明白了。...新增时的 Dialog.resize(561, 283) 就告诉了我们界面的大小是多少了,所以我们把它改成 Dialog.setFixedSize(561, 283) 就好了。...setFixedSize() 可以固定界面大小,不能拉伸,也不能点最大化了。
1.java swing 开发安装windowbuilder ,支持eclipse下的java界面静态开发,使用时只需要继承JFrame,然后右键使用windowbuilder...d2wbpro/latest/3.5 Eclipse 3.4 (Ganymede) http://dl.google.com/eclipse/inst/d2wbpro/latest/3.4 3.界面开发的思考...以前觉得界面开发,只有那么几个框架,mfc、winform、wtl,随着经验和见识的丰富,见到了越来越多的框架和开发模式,才恍然大悟,其实界面开发,都是和window打交道,只要有相应的接口调用就行了...不管什么语言都可以方便的做出好的界面来,即使是网页、脚本js、tcl,只要sdk丰富。...界面创建一般分为动态和静态的方式,动态的就是完全使用api create创建,静态的只需要使用工具拖拽生成resource文件即可。
学会JavaSwing构建程序界面后,小伙伴们最大的困惑可能是“为什么我们做出来的界面那么丑、不跟市面流行的程序界面一样呢?” 像这个界面,我们发现标题栏跟默认状态不一样,关闭按钮的样式也变了。...下面的代码实现了无标题栏窗体,使用背景拉伸的技术为处于上部分的面板设置了背景图片;实现了关闭按钮的鼠标经过以及鼠标单击事件;实现了鼠标拖拽新标题栏移动整个窗体的功能。其他功能及特效大家可以自行实现。...Constants.java /** * @Description: 用来保存常量 * @author: 老九学堂·窖头 * @date: 2017年12月25日 下午2:47:31 *...int Width_LoginFrame = 387; /** 登录窗体的高 */ public static int Height_LoginFrame = 266; } LoginFrame.java...*************/ this.setContentPane(contentPane); } class TopPanel extends JPanel{//重写上部面板(实现了背景图片拉伸效果
参考链接: Java 如何创建不可变类 不可变类(Immutable Class):所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值。...可变类(Mutable Class):相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类。 不可变类的特性对JAVA来说带来怎样的好处? ...不可变类的设计原则 如何在Java中写出Immutable的类?...public final class String implements java.io.Serializable, Comparable, CharSequence { ...也就是说,通过反射是可以修改所谓的“不可变”对象的。 不可变类是实例创建后就不可以改变成员变量的值。
参考:http://www.importnew.com/7553.html final 关键字 简单来说 final关键字不可变 final方法不可被重写 final类不可被继承 final变量 //...此时final的含义是该类已经够完善了,不需要再补充或更改 不可变类(immutable class) 参考: https://www.journaldev.com/129/how-to-create-immutable-class-in-java...在getter方法中,不要直接返回对象本身,而是克隆对象,并返回对象的拷贝 关于4,如果是String等不可变类的话就可直接赋值。...关于5,如果是返回String等不可变类的对象的话,不必再拷贝,可直接返回。 因为我们的目的是让成员变量不能改,最多只能读。...以下是示例代码 package com.journaldev.java; import java.util.HashMap; import java.util.Iterator; public final
有时最好不允许修改 java.util.Map, 例如跨线程共享只读数据。为此,我们可以使用Unmodifiable Map或Immutable Map。...然后,我们将介绍可以创建不可变Map的各种方法。 不可修改与不可变 Unmodifiable Map其实是一个可以修改的map的包装器,不允许直接修改它。...mutableMap.put("Mexico", "North America"); assertTrue(unmodifiableMap.containsKey("Mexico")); 另一方面,不可变...因此,一旦创建了不可变Map的实例,数据就不会以任何方式改变。 Guava不变Map Guava提供了每个java.util的不可变版本。使用 ImmutableMap 映射 。...USA")); assertTrue(immutableMap.containsKey("Costa Rica")); 3.使用of() 最后,我们可以使用ImmutableMap.of() 方法创建一个不可变的
机考界面如下(单选题),上方是题目状态,下方是题目,1/5/1是已做题目数量、总共题目数量和答对题目数量。 再看一下多选题的界面。 判断题的界面。 回答正确时的反馈,会给出用时。...Question.java 题库 import java.util.ArrayList; import java.util.List; class SingleChoice { public...trueOrFalse.add(new TrueOrFalse("Java中的final关键字用于标识一个类不可被继承", true)); trueOrFalse.add...("Java中的静态方法可以被子类重写", false)); } } JavaExam.java 主界面 import javax.swing.*; import javax.swing.border.EmptyBorder...接下来是如何将题目展示在GUI界面上以及实现其他的功能逻辑的问题了。
本文链接: http://blog.csdn.net/xietansheng/article/details/72814531 Java Swing GUI 图形界面窗口开发基础教程,本教程将系统性地详细介绍...教程总目录: Java Swing 图形界面开发(目录) 1. Swing简介 Swing 是 Java 为图形界面应用开发提供的一组工具包,是 Java 基础类的一部分。...Swing 包含了构建图形界面(GUI)的各种组件,如: 窗口、标签、按钮、文本框等。 Swing 提供了许多比 AWT 更好的屏幕显示元素,使用纯 Java 实现,能够更好的兼容跨平台运行。...Swing组件 一个 Java 的图形界面,由各种不同类型的“元素”组成,例如: 窗口、菜单栏、对话框、标签、按钮、文本框等等,这些“元素”统一被称为 组件(Component)。...) 2 JDialog 对话框 2.2 中间容器 中间容器充当基本组件的载体,不可独立显示。
这样的特性对JAVA来说带来怎样的好处? 线程安全 不可变对象是线程安全的,在线程之间可以相互共享,不需要利用特殊机制来保证同步问题,因为对象的值无法改变。...public final class String implements java.io.Serializable, Comparable, CharSequence {...譬如你想加载java.sql.Connection类,而这个值被改成了myhacked.Connection,那么会对你的数据库造成不可知的破坏。 4. 支持hash映射和缓存。...参考资料 [1] http://my.oschina.net/zzw922cn/blog/487610 [2] java的String 为什么是不可变的:http://www.codeceo.com/article.../why-java-string-immutable.html [3] http://www.importnew.com/7535.html
aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTQ3OTg3NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /> import java.awt.FlowLayout...; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame...this.setLocationRelativeTo(null);//设置窗体居中 this.setResizable(false);//设置窗体大小不能改变 this.setBackground(java.awt.Color.lightGray
一、不可变类简介 不可变类: 所谓的不可变类是指这个类的实例一旦创建完成后,就不能改变其成员变量值。如JDK内部自带的很多不可变类:Interger、Long和String等。...可变类: 相对于不可变类,可变类创建实例后可以改变其成员变量值,开发中创建的大部分类都属于可变类。 二、不可变类的优点 说完可变类和不可变类的区别,我们需要进一步了解为什么要有不可变类?...这样的特性对JAVA来说带来怎样的好处? 线程安全 不可变对象是线程安全的,在线程之间可以相互共享,不需要利用特殊机制来保证同步问题,因为对象的值无法改变。...public final class String implements java.io.Serializable, Comparable, CharSequence { /** The...譬如你想加载java.sql.Connection类,而这个值被改成了myhacked.Connection,那么会对你的数据库造成不可知的破坏。 4. 支持hash映射和缓存。
Java 可变对象和不可变对象 作者:幽鸿 Mar 14, 2016 10:21:27 PM 一、简单定义 不可变对象(Immutable Objects)即对象一旦被创建它的状态...不可变对象的类即为不可变类(Immutable Class)。Java平台类库中包含许多不可变类,如String、基本类型的包装类、BigInteger和BigDecimal等。...60 61 62 63 64 65 66 67 68 69 70 71 72 73 import java.util.Date...在《Effective Java》一书中, Joshua Bloch提出了一个强制性的建议 : "类应该是不可变的,除非有很好的理由让它是可变的....如果一个类不能设计为不可变的,也要尽可能的限制它的可变性...Java 类库中的基本数据类型的包装类(如Integer 、 Long 和 Float )都是不可变的,其它数字类型(如 BigInteger 和 BigDecimal )也是不可变的。
int y = 20; swap(x,y); System.out.println(x); System.out.println(y); } } JAVA
整理了16款css按钮,经过全部测试,没发现有影响使用的bug,其中也可能存在部分bug,但是应该问题不大。
Java中,synchronized关键字和Lock的实现类都是悲观锁。...乐观锁在Java中是通过使用无锁编程来实现,最常采用的是CAS算法,Java原子类中的递增操作就通过CAS自旋实现的。...Java对象头 synchronized是悲观锁,在操作同步资源之前需要给同步资源先加锁,这把锁就是存在Java对象头里的,而Java对象头又是什么呢?...如果是一个不可重入锁,那么当前线程在调用doOthers()之前需要将执行doSomething()时获取当前对象的锁释放掉,实际上该对象锁已被当前线程所持有,且无法释放。所以此时会出现死锁。...《Java并发编程艺术》 2.Java中的锁 3.Java CAS 原理剖析 4.Java并发——关键字synchronized解析 5.Java synchronized原理总结 6.聊聊并发(二)—
乐观锁在Java中是通过使用无锁编程来实现,最常采用的是CAS算法,Java原子类中的递增操作就通过CAS自旋实现的。...Java对象头 synchronized是悲观锁,在操作同步资源之前需要给同步资源先加锁,这把锁就是存在Java对象头里的,而Java对象头又是什么呢?...如果是一个不可重入锁,那么当前线程在调用doOthers()之前需要将执行doSomething()时获取当前对象的锁释放掉,实际上该对象锁已被当前线程所持有,且无法释放。所以此时会出现死锁。...参考资料 《Java并发编程艺术》 Java中的锁 Java CAS 原理剖析 Java并发——关键字synchronized解析 Java synchronized原理总结 聊聊并发(二)——Java...深入分析 Java–读写锁的实现原理
所谓重入锁,指的是以线程为单位,当一个线程获取对象锁之后,这个线程可以再次获取本对象上的锁,而其他的线程是不可以的。 synchronized 和 ReentrantLock 都是可重入锁。...代码演示: 不可重入锁: public class Lock{ private boolean isLocked = false; public synchronized void lock...这个例子很好的说明了不可重入锁。...可重入锁的概念和设计思想大体如此,Java中的可重入锁ReentrantLock设计思路也是这样。 synchronized和ReentrantLock 都是可重入锁。...摘自:JAVA可重入锁与不可重入锁 和 Java不可重入锁和可重入锁理解 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153277.html原文链接:https
在Java编程中,String类的不可变性是一个被广泛讨论和利用的特性。这种不可变性使得String对象在创建后无法被修改,从而保证了程序的安全性和线程安全性。...本文将深入探讨Java中String不可变性的底层实现原理,并讨论其对程序设计的影响。1....不可变性的概念在计算机科学中,不可变性(Immutability)指的是对象一旦被创建后,其状态就不能被修改。在Java中,String类就是一个典型的不可变类。...不可变性的优点Java中String不可变性的设计带来了以下优点:线程安全性:由于String对象的不可变性,多线程环境下无需担心对字符串对象的修改导致的数据竞争问题。...在本文中,我们深入探讨了Java中String不可变性的底层实现原理,以及其对程序设计的影响。通过理解String的不可变性,我们可以更好地利用这一特性来编写高效、安全的Java程序。
在 Java 和数据库中都有此概念对应的实际应用。 先说概念。...乐观锁在 Java 中是通过使用无锁编程来实现,最常采用的是 CAS 算法,Java 原子类中的递增操作就通过 CAS 自旋实现的。...Java 对象头:synchronized是悲观锁,在操作同步资源之前需要给同步资源先加锁,这把锁就是存在 Java 对象头里的,而 Java 对象头又是什么呢?...如果是一个不可重入锁,那么当前线程在调用doOthers()之前需要将执行doSomething()时获取当前对象的锁释放掉,实际上该对象锁已被当前线程所持有,且无法释放。所以此时会出现死锁。...-------------- 转载声明:本文转自「美团技术团队」的「不可不说的Java“锁”事」这篇文章。
原文【如何在java中创建不可变类?】地址 今天我们将学习如何在java中创建不变的类。不可变对象是在初始化之后状态不变的实例。例如,String是一个不可变类,一旦实例化,它的值不会改变。...不可改变的类对于缓存的目的是有益的,因为你不需要担心价值的变化。不可变类的其他好处是它本质上是线程安全的,所以在多线程环境的情况下,您不需要担心线程安全。...在这里,我提供了一种通过一个例子来创建Java中不可变类的方法,以便更好地理解。 要在java中创建不可变类,您必须执行以下步骤。 将类声明为final,因此无法扩展。...FinalClassExample.java import java.util.HashMap; import java.util.Iterator; /** * * * @author...进一步阅读:如果不可变类有很多属性,其中一些属性是可选的,我们可以使用构建器模式来创建不可变类
领取专属 10元无门槛券
手把手带您无忧上云