Bordo con titolo in Java Swing

Nel package javax.swing.border sono definiti diverse tipologie di bordi che possiamo applicare facilmente a tutti i componenti grafici contenuti nelle API di java. Tra questi uno dei più particolari è il TitledBorder che al di là dell'effetto estetico ci da la possibilità di inserire anche un titolo all'interno del bordo. Questa caratteristica la ritengo fondamentale in quanto ci consente di dare una breve descrizione funzionale del pannello o del componente su cui stiamo applicando il bordo:
TitledBorder titledBorder = new TitledBorder("Titolo");
Al bordo possiamo specificare altre caratteristiche come l'allineamento del titolo, il tipo di Font ed anche un'altro tipo di bordo. Per ognuna di queste caratteristiche è disponibile un costruttore diverso oppure è possibile utilizzare i metodi della classe:
  • void setBorder(Border border)
  • void setTitle(String title)
  • void setTitleColor(Color titleColor)
  • void setTitleFont(Font titleFont)
  • void setTitleJustification(int titleJustification)
  • void setTitlePosition(int titlePosition)
Vediamo un esempio completo di un TitledBorder applicato ad un JPanel:
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;

public class TitleBorderDemo extends JPanel {
  public static void main(String [] argv) {
    JPanel panel = new JPanel();
    TitledBorder titleBorder = new TitledBorder("Titolo");
    panel.setBorder(titleBorder);
    JFrame frame = new JFrame("TitleBorderDemo");
    frame.getContentPane().add(panel);
    frame.setSize(200,200);
    frame.setVisible(true);
  }
}

TitledBorderDemo - Esempio 1

Vediamo com'è possibile applicare un tipo di bordo diverso, un font e settare l'allineamento centrale:
...
TitledBorder titleBorder = new TitledBorder(new LineBorder(Color.BLACK),"Titolo");
titleBorder.setTitleJustification(TitledBorder.CENTER);
titleBorder.setTitleFont(new Font(Font.SANS_SERIF,Font.BOLD,15));
...

TitledBorderDemo - Esempio 2

Sono disponibili altri tipi di allineamento tramite costanti di classe come TitledBorder.LEFT e TitledBorder.RIGTH. Mentre possiamo utilizzare il metodo setTitlePosition(int titlePosition) per specificare la posizione verticale del titolo, utilizzando le costanti di classe:
  • TitledBorder.TOP
  • TitledBorder.BOTTOM
  • TitledBorder.ABOVE_BOTTOM
  • TitledBorder.BELOWE_BOTTOM
  • TitledBorder.ABOVE_TOP
  • TitledBorder.BELOW_TOP
Nell'immagini qui sotto sono indicate rispettivamente le varie posizioni:

TitledBorderDemo - Esempio 3

TitledBorderDemo - Esempio 4

Altri link che potrebbero interessarti
  • Utilizzare un JButton in Java Swing
  • Utilizzare HTML in componenti Java Swing
  • Numeri casuali in java
  • Modalità Full Screen Exclusive in java
  • Leggere un file di testo in java
  • Le variabili atomiche in java
  • Le classi anonime
  • Java Regex
  • Java Database MySql
  • Java Cursor Mouse
  • Import Static Java
  • Implementare un Singleton
  • Implementare un KeyListener in java Swing
  • Implementare il System.out su una JTextArea
  • Il costrutto if in java
  • Il costrutto foreach in java
  • Il blocco static
  • Creare una ToolBar in Java Swing
  • Chiudere le applicazioni Java Swing
  • Background Image per componenti Java Swing