1、synchronized关键字。
相当于锁,第一次实例化后,将会将状态保存在内存中,第二次直接取当前的状态。直至程序退出。例如:
Public class MiniWebPlugin{
private static MiniWebPlugin singleton;
private static final Object LOCK = new Object();
public static MiniWebPlugin getInstance() {
// Synchronize on LOCK to ensure that we don't end up creating
// two singletons.
synchronized (LOCK) {
if (null == singleton) {
MiniWebPlugin controller = new MiniWebPlugin();
singleton = controller;
return controller;
}
}
return singleton;
}
}
2、计时器
TimerTask task = new SwingTimerTask() {
public void doRun() {
}
};
TaskEngine.getInstance().schedule(task, 1000, 5000);
(延时1秒执行,每隔5秒执行一次)
TaskEngine.getInstance().cancel()方法停止。
TaskEngine.getInstance().run()方法启动。
3、static关键字使用心得:
加 static关键字后只实例化一次,在实例未销毁前,值(状态)一直存在。防止多次调用到目标代码后出现多个实例化对象在处理“药客资讯”链接CSS中,是一个成功的使用典范。
4、窗口放于屏幕中央:
JFrame
GraphicUtils.centerWindowOnComponent(Frame,SparkManager.getMainWindow());
JPanel
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = getSize();
setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
5、运行: Runtime.getRuntime().exec("cmd.exe /c start " +url.toString());
-Dplugin=search
6、获取操作系统名称:System.getProperty("os.name").toLowerCase()
7、检索系统进程:
public static void main(String[] args) {
Process p;
try {
p = Runtime.getRuntime().exec( "cmd.exe /c tasklist");
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while((line=input.readLine())!=null){
System.out.println(line);
}
input.close();
} catch (IOException e) {
e.printStackTrace();
}
}
8、通过超链接启动本地应用程序。
(1)修改注册表
RegistryKey headKey = new RegistryKey(RootKey.HKEY_CLASSES_ROOT, "yaokeIM");
if(!headKey.exists()){
headKey.create();
String startUpUrl = System.getProperty("user.dir") + "\\Yaoke.exe";
RegistryValue value1 = new RegistryValue("", ValueType.REG_SZ, "URL:yaokeIM Protocol Handler");
headKey.setValue(value1);
RegistryValue value2 = new RegistryValue("URL Protocol", ValueType.REG_SZ, "");
headKey.setValue(value2);
RegistryKey DefaultKey = new RegistryKey(RootKey.HKEY_CLASSES_ROOT, "yaokeIM\\DefaultIcon");
DefaultKey.create();
RegistryValue value3 = new RegistryValue("", ValueType.REG_SZ, startUpUrl);
DefaultKey.setValue(value3);
RegistryKey valueKey = new RegistryKey(RootKey.HKEY_CLASSES_ROOT, "yaokeIM\\shell\\open\\command");
valueKey.create();
RegistryValue value4 = new RegistryValue("", ValueType.REG_SZ, startUpUrl);
valueKey.setValue(value4);
}
(2)超链接:<a href="yaokeIM://">药客通在线</a>
9、超链接通过注册表向应用程序传递参数。
例:链接 <a href = “yaoke://suisui”>药客通_suisui</a>
注册表 节点 yaoke
程序:
public static void main(String[] args) {
System.out.println(args);
}
输出: yaoke://suisui/;
在命令行执行
打包:jar cvf youfile.jar *.*
解压:jar -xvf jfreechart-0.9.20.zip
11、快捷键启动功能:
SparkManager.getWorkspace().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW)
.put(KeyStroke.getKeyStroke("F8"), "showBrowser");
SparkManager.getWorkspace().getActionMap()
.put("showBrowser", new AbstractAction("showBrowser") {
public void actionPerformed(ActionEvent evt) {
display();
}
});
按F8将调用display方法。
12 将Window窗体设为透明
com.sun.awt.AWTUtilities.setWindowOpacity(window, 0.6f);
13、获取鼠标坐标
Point mousepoint = MouseInfo.getPointerInfo().getLocation();
13、el判断是否为空
<c:if test="${empty user.vcard.trueName }">${user.username }</c:if>
<c:if test="${not empty user.vcard.trueName}">(${user.username })</c:if>
14、为面板绘制渐变效果背景色
public void paintComponent(Graphics g) {
BufferedImage cache = new BufferedImage(2, getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D g2d = cache.createGraphics();
GradientPaint paint = new GradientPaint(0, 0, (Color)UIManager.get("main.defaultColor"), 0, getHeight(), Color.white, true);
g2d.setPaint(paint);
g2d.fillRect(0, 0, getWidth(), getHeight());
g2d.dispose();
g.drawImage(cache, 0, 0, getWidth(), getHeight(), null);
}
将彩色图片变为黑白色
public static void gray(String source, String result)
{
try
{
BufferedImage src = ImageIO.read(new File(source));
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(cs, null);
src = op.filter(src, null);
ImageIO.write(src, "JPEG", new File(result));
}
catch (IOException e)
{
e.printStackTrace();
}
}
刷新全部组件
SwingUtilities.updateComponentTreeUI
分享到:
相关推荐
在Java Swing中,`JSplitPane`是一个非常强大的组件,用于创建可调整大小的容器来容纳两个子组件(例如面板或滚动窗格),并且允许用户通过拖动分割条来调整每个子组件的大小。下面将详细介绍如何使用`JSplitPane`来...
这篇Swing读书笔记目录旨在帮助开发者更好地理解和掌握Swing的相关知识,通过阅读和学习,可以提升在Java GUI编程上的技能。 首先,Swing是Java Foundation Classes (JFC)的一部分,它是Sun Microsystems为Java平台...
### Swing读书笔记:深入理解Swing的包与版面结构 #### Swing的常用包解析 Swing作为Java中用于创建图形用户界面(GUI)的主要库,提供了丰富的组件和功能,其核心包及其作用如下: 1. **`javax.swing`**: - 这是...
### Java Swing 学习笔记详解 #### 一、引言 在Java图形用户界面(GUI)编程领域,Swing 是一个强大的工具包,用于构建功能丰富且美观的应用程序界面。与早期的 AWT(Abstract Window Toolkit)相比,Swing 提供了...
### Java Swing 知识总结学习笔记 #### 一、Swing 概述 Swing 是一个用于构建桌面应用程序的 Java 图形用户界面 (GUI) 工具包,它基于 Java Abstract Window Toolkit (AWT) 构建而成。Swing 提供了更丰富的组件集...
Swing则是建立在AWT之上,提供了一个更丰富、更灵活的GUI工具包。Swing的所有组件都是用纯Java实现,不依赖于操作系统,这保证了跨平台的统一性和更好的兼容性。Swing不仅包含了AWT的基本组件,还增加了许多高级组件...
本资源包主要涵盖了两个核心库:AWT(Abstract Window Toolkit)和Swing,它们都是Java Foundation Classes (JFC) 的一部分,用于构建桌面应用程序。 **AWT** 是Java早期提供的图形用户界面(GUI)工具包,它直接与...
手写笔记,事无巨细,但是不太好看,谨慎下载
### Java Swing 组件:JList 学习笔记 #### JList 概述 JList 是 Java Swing 中的一个重要组件,用于展示列表项。它能够帮助开发者实现数据的动态展示、编辑以及选择等功能,广泛应用于各种桌面应用软件界面设计中...
本项目名为"Java笔记桌面程序",它是由一个热衷于编程的开发者为解决其所在公司无法使用网络笔记客户端的问题而自创的。这个程序采用Java语言编写,充分体现了Java的跨平台特性,可以在多种操作系统上运行,包括...
在Java编程语言中,Swing库是...在学习过程中,参考“JAVA学习笔记swing JFrame窗口学习.txt”文档将有助于深入理解这一主题。同时,“www.pudn.com.txt”可能提供了更多相关的学习资源和示例代码,可供进一步研究。
这篇“SwingHacks学习笔记(2)-----自定义JLabel,JButton”博客文章深入探讨了如何利用Swing自定义组件,特别是JLabel和JButton,以实现更丰富的用户交互。 JLabel是Swing中用于显示文本、图像或两者组合的基本组件...
在“sinodataLearn”这个文件中,可能包含了关于Swing学习的笔记、代码示例或者练习项目,这些都是深入理解和掌握Swing的好材料。建议逐步研究这些内容,通过实践来加深理论知识的理解,从而提升Swing开发技能。
JavaSE6学习笔记是针对Java初学者和进阶者的一份宝贵资料,由知名讲师李兴华的培训课堂笔记汇编而成。这份笔记全面、详细地涵盖了Java SE 6版本的核心概念和技术,对于理解Java编程语言的基础以及进阶特性具有重要...
”表明这是一个使用Java编程语言开发的笔记应用程序。Java是一种广泛使用的面向对象的编程语言,以其跨平台性、安全性和可移植性而闻名。这个程序可能是为了帮助用户记录、管理和检索信息,类似于电子版的笔记本。 ...
在本项目中,我们主要探讨的是一个基于Java的实训项目,涵盖了MySQL数据库管理和Swing图形用户界面(GUI)设计,构建了一个学生信息管理系统以及学生笔记管理系统。这个项目旨在提升开发者在实际开发环境中对数据库...
在Java编程语言中,开发一个具有打印、复制、粘贴、撤销、保存等基本功能的笔记本应用程序是一项常见的任务。这个项目对于学习Java的面向对象设计原则、事件处理以及文件I/O操作非常有帮助。以下是对这些功能的详细...
【标题】"韩顺平java笔记完整版.zip(无笔记,只是代码)"指的是一个包含韩顺平老师Java教学视频中所有代码的压缩文件。这个压缩包不包含笔记,而是专注于提供实际的编程示例,使得学习者可以直接查看和学习Java编程...
此外,还有一个名为"新建 文本文档.txt"的文件,这可能包含了与Swing相关的笔记、教程步骤或代码注释。这种文本文件经常被用来记录开发过程中的思考、问题解决方案或额外的指导信息。 总之,Swing是一个强大的GUI...