Monday, September 3, 2012

SteelSeries 3.9.30 released and moved to github

This is just a short info on the SteelSeries Java Swing library:

I moved the SteelSeries Swing library from project Kenai to github to have all projects in one place. Because I was working on it anyway I also created another major release which mainly contains some bugfixes (nothing special). In addition I have added the possibility to switch off the lcd background and the possibility to blink the lcd text (both features have been requested by users).

So if you would like to get the latest source code you should from now on take the code from the github repo and also issues should be filed on github instead of project Kenai.

Cheers and keep coding...


  1. Could you publish list of fixed issues?


  2. 472
    Modified: 31 Aug 10:31 (3 days)
    Author: Gerrit Grunwald
    Log Entry: Added a property to blink the lcd and to hide the lcd background
    Revision: 471
    Modified: 26 Jul 05:11 (1 month)
    Author: han.solo.
    Log Entry: Added some minor bugfixes and removed the variometer gauge again due to a lack of time
    Revision: 470
    Modified: 22 Jun 12:47 (2 months)
    Author: han.solo.
    Log Entry: Applied patch that fixed problems related to sections in Linear- and RadialBargraph (thx to Wilke). In addition i fixed some problems that have been reported by Patric Nolle.
    Revision: 469
    Modified: 07 Jun 13:47 (2 months)
    Author: han.solo.
    Log Entry: Fixed a problem in the DisplaySingle component where the digital font position was not correct.
    Revision: 468
    Modified: 24 May 09:35 (3 months)
    Author: han.solo.
    Log Entry: Fixed a typo related to custom title and unit font. In addition started adding a Variometer gauge (but it's not functional at all at the moment).
    Revision: 467
    Modified: 12 Apr 06:38 (4 months)
    Author: han.solo.
    Log Entry: Fixed a little bug in the darker() and lighter() methods in the Util class.

  3. Hi, I want to ask you if is possible to have DisplaySingle component with custom foreground and background colors together with sections (bargraph visibility set to true). Because when I'm trying set custom colors(display.setLcdColor(LcdColor.CUSTOM)), I get a NullPointerException. Here is my piece of code.

    import eu.hansolo.steelseries.gauges.DisplaySingle;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import javax.swing.JSlider;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;

    public final class Test extends javax.swing.JFrame {

    private final JSlider slider = new JSlider(0, 100);
    private final DisplaySingle display = new DisplaySingle();

    public Test() {
    setMinimumSize(new java.awt.Dimension(300, 150));

    slider.setMinimumSize(new Dimension(20, 30));
    slider.setPreferredSize(new Dimension(20, 30));
    slider.setMaximumSize(new Dimension(20, 30));
    slider.addChangeListener(new ChangeListener() {
    public void stateChanged(ChangeEvent e) {
    add(slider, BorderLayout.NORTH);

    // add sections, set bargraph visibility to true
    display.addSection(new Section(0, 50, Color.GREEN));
    display.addSection(new Section(50, 75, Color.ORANGE));
    display.addSection(new Section(75, 100, Color.RED));

    // set lcd foreground and background colors

    add(display, BorderLayout.CENTER);

    public static void main(String args[]) {

    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new Test().setVisible(true);

  4. Indeed there was a bug which is fixed in the latest Snapshot (could be downloaded from this page). If you choose the LcdColor.CUSTOM you will only see the foreground (text and bargraph) changing their colors according to the current value. If you would like to see the background changing it's color you have to use the LcdColor.SECTIONS to get the best results.

  5. Gerrit,

    Thanks a lot for your great work. Really appreciate you implementing the suggestion of the blinking LCD and fixing the digital font positioning problem.

    I hope you don't mind if I ask you a couple of questions here.

    I notice that when I set the user LED to blinking using setUserLedBlinking(true), the animation is not completely smooth. It looks as though the LED is drawn directly to an on screen buffer. Half the LED is off and half is on. I have a screenshot showing the issue, but I can't seem to post it here.

    Is there any option to change the size of the font used for the tickmark labels? Looking at the TickmarkImageFactory source code seems to say no (it is scaled with a fixed constant, based on the width of the gauge).

    Also great news about moving everything to github.



  6. Hi, Gerrit

    I used the Clock component with java 1.6 and Netbeans 7.2 and SteelSeries 3.9.23.
    After upgrading to 3.9.30, the Clock is not zoomable like before. You will only see a small part of the clock if an small size is used, and if the frame is bigger, the frame and background stay on a constant size, but the moving components move around on the panel area. If the panel size does not fit excactly, the components will move away from their original position, scattering around the frame area.

    I can send some screenshots from Netbeans IDE if you need this.

    I tested some other components, but found no visualisation problems.

    Greetings from Wuppertal

  7. Hello

    Since you have put the sources of steelseries I have worked on the problem of log scale of gauges (I have only worked on the linear one).
    The problem was that when your values (max, min ) were below 1 the gauge doesn't work. I have fixed the problem and I can send to you what I have done.

    I'd like also to propose a new format number for scientific application. For example instead of writing 2.5E-4 Volt you will write 250µ Volt. I did it a longtime ago in Pascal and I could translate it to Java

    Best regards


  8. Hi,

    for our project, we used many functions of your lib to show a great list of sensor measures. Now we want to create frame with three clocks, to show the current time in three diffrent timezones. For this, it is required to show, if it is AM or PM.
    The Java User Group Münster has created a nice solution, with a time of day display in the clock face. (

    It would be very nice, if you could integrate this feature to your lib.


    1. Hi Chris,
      Well I'm the leader of the Java User Group Münster and created the solution you mentioned :)
      I can check if I could find the version but I'm not sure because it's quite old...