记录精彩的程序人生
Provides interactive 2D/3D plot (without openGL) : 2D/3D scatter plot 2D/3D line plot 2D staircase plot 2D/3D histogram plot 2D/3D boxplot 3D grid plot 2D/3D quantiles on plots Note: for a true OpenGL java plot library, try the good jzy3d project Example Java code import org.math.plot.*; ... double[] x = ... double[] y = ... // create your PlotPanel (you can use it as a JPanel) Plot2DPanel plot = new Plot2DPanel(); // add a line plot to the PlotPanel plot.addLinePlot("my plot", x, y); // put t....
官网 http://www.jidesoft.com/ Github https://github.com/jidesoft/jide-oss 编译好的jide-oss-3.7.6.jar jideoss3.7.6.jar 源码 jideoss3.7.6.zip JideSplitButton使用示例 JideSplitButton jideSplitBtn = new JideSplitButton("自选"); jideSplitBtn.setFocusable(false); jideSplitBtn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO: 显示全部自选股 } }); // TODO: 获得自选股分组 String[] groups = new String[] {"分组1", "分组2", "分组3", "分组4"}; for(String group : groups) { jideSplitBtn.add....
http://www.jidesoft.com/products/oss.htm https://github.com/jidesoft/jide-oss JIDE Common Layer (Open Source Project) As of April 2007, we decided to open source the JIDE Common Layer - the foundation of all JIDE other products. You can get the JIDE Common Layer release or access the github repository from github (it was formally hosted on java.net which is now discontinued). If you use maven for your project, all released versions of JIDE Common Layer are also available on the centeral maven re....
Desktop 类 Desktop 类是java的桌面类,可以启动程序,是jdk 1.6 时发布的,位于 java.awt 包下。 可以支持以下几种功能: open 打开文件 edit 编辑文件 print 打印文件 mail 发送邮件 browse 浏览器打开网址 代码中体现为: Action 枚举。 public static enum Action { OPEN, EDIT, PRINT, MAIL, BROWSE }; 是单例模式的, 私有构造 private Desktop() { peer = Toolkit.getDefaultToolkit().createDesktopPeer(this); } 需要静态方法 getDesktop() 来构建实例化对象。 public static synchronized Desktop getDesktop(){ if (GraphicsEnvironment.isHeadless()) throw new HeadlessException(); if (!Desktop.isDesktopSupported()) ....
http://www.java2s.com/Code/Java/Swing-Components/ToolTipComboBoxExample.htm // Example from http://www.crionics.com/products/opensource/faq/swing_ex/SwingExamples.html /* (swing1.1.1beta2) swing#1785 */ import java.awt.Component; import java.awt.FlowLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JList; import javax.swing.UIManager; import javax.swing.plaf.basic.BasicComboBoxRenderer; /** ....
About this series So you think you know about Java programming? The fact is, most developers scratch the surface of the Java platform, learning just enough to get the job done. In this ongoing series, Java technology sleuths dig beneath the core functionality of the Java platform, turning up tips and tricks that could help you solve even your stickiest programming challenges. User interface design and development have changed a lot and the Java™ platform has kept pace with these changes. The re....
border:#efefff 3px inset; 其中inset、还有outset是指什么? inset 就是border框内嵌效果 而outset相应的就是外凸效果 你可以参考下面这个关于border的效果的 http://www.tizag.com/cssT/border.php
Swing组件有多种与屏幕布局更新相关的方法,特别是: validate() invalidate() revalidate() Java文档从技术角度对这些进行了一些定义,但是它们的使用方式并不是特别清楚。 它们之间有什么区别,在什么情况下你应该使用一个而不是其他一个?
绘图模式是指后绘制的图形与早先绘制的图形有重叠时,如何确定重叠部分的颜色。例如,后绘制的覆盖早先绘制的;或者后绘制与早先绘制的两种颜色按某种规则混合。主要有正常模式和异或模式两种:正常模式是后绘制的图形覆盖在早先绘制的图形之上,使早先绘制图形的重叠部分不再可见。异或模式把绘图看作是按图形着色。异或模式绘图时,将当前正要绘图的颜色、原先绘制的颜色以及异或模式设定的颜色作特定的运算,得到实际绘图颜色。设置绘图模式的方法有: setPaintMode():设置绘图模式为覆盖模式(正常模式)。正常模式是绘图的默认模式。 setXORMode(Color c):设置绘图模式为异或模式,参数c为异或模式设定的绘图颜色。 设背景色为B,用setXORMode()设置的颜色为C,另用某个非背景色D绘图,XOR模式有以下确定实际绘图颜色的法则: B + B = C,用背景色绘图,出现C颜色。 D + D = B,当一个图形重画时就能清除原先画的图形。 B + D = B和D的混合色(当B,D不相同时)。 如果某区域已用D着色,再用E着色,则结果是: D + E = D和E的混合色(当D,E不相同时....
RenderingHints 类定义了多种着色微调,它们存储在一个映射集的 Graphics2D 对象里。 setRenderingHint() 方法的参数是一个键以及对应的键值。在我们的代码中,第一个参数是代表 alpha 合成微调的键,第二个参数是该微调的值。该微调的其它可能的值有 VALUE_ALPHA_INTERPOLATION_DEFAULT,代表平台缺省值;以及 VALUE_ALPHA_INTERPOLATION_SPEED,代表追求速度而不是质量。 您还可以为下面的键提供微调: 键 描述 KEY_ANTIALIASING 决定是否使用抗锯齿。当着色有倾斜角度的线时,通常会得到一组阶梯式的像素排列,使这条线看上去不平滑,经常被称为 锯齿状图形。抗锯齿是一种技术,它设置有倾斜角度的线的像素亮度,以使线看起来更平滑。因此,这个微调是用来决定在着色有倾斜角度的线时是否在减少锯齿状图形上花费时间。可能的值有 VALUE_ANTIALIAS_ON, _OFF 或 _DEFAULT。 KEY_COLOR_RENDERING 控制颜色着色的方式。可能的值有 VALUE_COLOR_R....
Swing 界面布局的方式 —— LayoutManager接口 在Swing里面,任何一个控件都是一个容器。 你可能听说过Swing里所有的控件都继承自 JComponent 这个类。 如果你去翻API文档,就会发现 JComponent 类继承自 Container 类,Container 就是容器。 容器可以看成一个层面,在它的上面可以添加其他的组件或者容器,称为它的子控件(children),添加到同一个容器内的子控件位于同一层,比容器本身高一层。Swing 的绘图方式是从最底层开始一层一层来绘制的,高层的绘制覆盖低层的绘制。(实际的绘制策略比这稍微更复杂一点,这里方便理解,不作详述) 一个容器,负责完成自己所有子控件的布局排列和绘制。在 Swing 里面,一个通用的接口用来帮助容器完成布局排列,这个接口就是 LayoutManager 接口, 常用的 BorderLayout, FlowLayout, GridLayout 等都是其实现。 在实际应用中,LayoutManager 负责两件事: 1 - 给定当前容器的实际大小,尽最大努力对所有的子控件进行布局排列; 2 - 给....
Swing的容器结构与JLayeredPane的使用 类层次结构图: java.lang.Object --java.awt.Compontent --java.awt.Container --javax.swing.JComponent --javax.swing.JLayeredPane 我们可把Swing容器的结构看似如下图所示: |Grass Pane | Root Pane| | |Content Pane |Layered Pane| |Menu Bar 其中,Root Pane可以看成是虚拟的容器,包含着Grass Pane、Layered Pane、Content Pane与Menu Bar.Swing的容器包括JApplet ,JFrame,JDialog,JWindow与JInternalFrame都是构造在此结构上,JApplet、JFrame、JDialog、JWindow都是heavyweight容器,只 有JInternalFrame是lightweight容器。当我们要加入某个组件到Swing的容器中时,并不是直接加入到Root Pane,而是加入到....
原文地址:Java2D: Hardware Accelerating - Part2 - Buffer Strategies 利用我们已经学到的东西 昨天的帖子(Java2D: Hardware Acceletating - Part1 - Volatile Images)里,我讨论了java.awt.image.VolatileImage,以及如何使用它们(实现)双缓冲Java 2D的代码。如果你还不能实现,请先看一下那个帖子。今天的小提示将扩展引用那个提示里提供的例子。为了演示如何使用VolatileImage对象,我使用了一种极普通的代码格式来处理Java 2D代码 - 在例如java.awt.Canvas这样的对象中重载 paint(Graphics)方法,并在控件内部使用Graphics对象执行自定义画图。记住,正如前面的帖子中提到的以及对它的回复所述那样,如果你在做标准的AWT/Swing开发的话,这种重载并非很有用。在这种情况下,你通常应该依赖于已有的控件实现来优化渲染。我今天(以及昨天)所说的,只对你开发低层图像渲染,并且需要自己实现缓冲策略的工作很有用。通常这种情况发....
Java 1.4在Java 2D的功能方面引入了对硬件加速的支持。毫无疑问,硬件加速非常有用——不过有效的使用java.awt.image.VolatileImage至少要比使用传统的“图像缓冲”机制要复杂一些。仅当你在自行实现复杂的Java 2D渲染的时候,使用低级的“硬件加速”功能才是的确很重要的。如果你只是在使用比方说Swing里预编译的控件的话,那么这个技巧的大部分都不太合适。但是对那些Java的2D游戏编程的人,或者那些操作大量图形,如图表、图解的人来说,就非常有用了。 我假设这个技巧的读者至少熟悉双缓冲的概念——如果你不熟悉,请读这里。简短地说,双缓冲就是把渲染的过程推迟在“画面外”的缓冲里,然后快速地把缓冲复制到画面设备上,从而提高了画质(画面渲染得更柔和)。标准双缓冲的简单实现方式(没有硬件加速),代码基本如下: // 也可以扩展其它类 - 不过通常会选择Canvas。 public class CustomGUI extends Canvas { private Image offscreenImage; private Graphics offscreenGrap....
下面的代码来自chartsy:Open Source stock charting, screening and trading platform 抽象的AutoCompleter package org.chartsy.main.utils.autocomplete; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JComponent; import javax.swing.JList; import javax.swing.JPopupMenu; import javax.swi....