Java Swing How to - Add Border with equal sizes on all 4 sides of JTextpane








Question

We would like to know how to add Border with equal sizes on all 4 sides of JTextpane.

Answer

import java.awt.BorderLayout;
import java.awt.Color;
//w w  w .  j  a  va  2  s  .  c o m
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.border.EmptyBorder;

public class Main {
  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(new TestPane());
    frame.pack();
    frame.setVisible(true);
  }
}

class TestPane extends JPanel {

  public TestPane() {
    setLayout(new BorderLayout());
    setBorder(new EmptyBorder(10, 10, 10, 10));
    JTextPane pane = new JTextPane();
    JPanel panel = new JPanel(new BorderLayout());
    JPanel innerPanel = new JPanel(new BorderLayout());

    pane.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    innerPanel.add(pane);
    panel.add(innerPanel);
    add(panel);
  }
}