giovedì 3 marzo 2011

JPanel con contorni a gradiente

Un pannello in Java dotato di bordi destro e sinistro con una sfumatura a gradiente di 10px.
Per un utilizzo corretto, occorre aggiungere un bordo "vuoto" di 10px affinchè il contenuto del pannello non si sovrapponga alla banda colorata:

pannelloConGradiente.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 10, 1, 10));

Per ottenere un bordo più o meno denso, basta parametrizzare lo spessore.

import javax.swing.JPanel;
import java.awt.Color;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;

public class PanelWithBorder extends JPanel
{
 protected void paintComponent( Graphics g )
 {
  if ( !isOpaque( ) )
  {
   super.paintComponent( g );
   return;
  }

  Graphics2D g2d = (Graphics2D)g;
  int w = getWidth( );
  int h = getHeight( );

  Color color1 = getBackground( );
  Color color2 = color1.darker( );

  GradientPaint gpSxBorder = new GradientPaint(0, 0, color2, 10, 0, color1 );
  GradientPaint gpDxBorder = new GradientPaint(w-10, 0, color1, w, 0, color2 );

  g2d.setPaint( gpSxBorder);
  g2d.fillRect( 0, 0, 10, h );

  g2d.setPaint( gpDxBorder );
  g2d.fillRect( w-10, 0, w, h );

  setOpaque( false );
  super.paintComponent( g );
  setOpaque( true );
 }
}

giovedì 17 febbraio 2011

VirtualBox ready to run images

Oracle rende disponibili delle immagini di macchine virtuali per VirtualBox pronte all'uso:
http://www.oracle.com/technetwork/community/developer-vm/index.html

Sto utilizzando quella di Oracle Solaris 10 9/10 per compilare questo post...
Al prossimo giro provo la Java Development con Oracle Linux 5.

martedì 7 dicembre 2010

Lorem ipsum

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed vitae mi nulla. Donec dictum urna nec sapien egestas nec consequat tellus mattis. Curabitur commodo congue arcu nec luctus. Mauris in elementum sapien. Vestibulum lorem velit, sollicitudin eu placerat ut, luctus ac est. Phasellus ut augue odio, nec tincidunt felis. Aenean faucibus facilisis ipsum, a pharetra nisl commodo vel. Maecenas suscipit tortor vel velit consectetur at laoreet dolor tempor. Duis tincidunt magna non ligula pellentesque nec scelerisque nisl consectetur. Vivamus ultrices nisl vitae nibh pulvinar faucibus. Integer enim augue, tristique id ornare et, rutrum id est. Mauris consectetur, ante eget malesuada rhoncus, risus magna lacinia erat, ac ullamcorper enim nibh ut nunc. Proin dignissim volutpat mi non suscipit. Nullam congue cursus mattis. Pellentesque quis nulla arcu, quis laoreet mauris. Aenean porta eleifend ultricies.

domenica 24 ottobre 2010

Un piccolo (e gratuito) editor Hex per OS X


Hex Fiend è un piccolo e gratuito editor esadecimale per OS X, rilasciato con licenza BSD. Oltre al programma viene offerta gratuitamente anche il set di API necessarie ad embeddare l'editor in altre apps!

Home Page di Hex Fiend

martedì 12 ottobre 2010

Il comando "tree" su Mac OS X

Grazie a Murphy Mac: http://murphymac.com/tree-command-for-mac/.

Mi è capitato di aver bisogno della visualizzazione ad albero di una struttura di directory da linea di comando sotto OS X; purtroppo il comando tree non è presente. Per evitare di dover installare un Mac Port o ricompilarmi i sorgenti, ho swebbato un po', ed ho trovato una command line che fa al caso nostro:

find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'

Perfetto, ora per evitare di dover scrivere tutta questa pappardella, vediamo di registrare il comando nel profilo della shell. Nell'ordine bash cerca i seguenti files di profilo:
  1. ~/.bash_profile
  2. ~/.bash_login
  3. ~/.profile
fermandosi al primo che trova..

Nel primo file tra quelli elencati quindi è sufficiente aggiungere la nostra funzioncina:

function tree {
find ${1:-.} -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
}

che funziona anche ricevendo come parametro opzionale la cartella root di cui stampare la struttura,