package Assis; import java.awt.*; import java.awt.event.*; import javax.swing.border.*; import javax.swing.*; public class BorderDemo extends JFrame { private static final long serialVersionUID = 1L; public BorderDemo() { // 设置框架窗口的标题 super("使用边框的例子"); // 定义5个简单类型的边框 Border blackline, etched, raisedbevel, loweredbevel, empty; // 创建黑色的线状边框 blackline = BorderFactory.createLineBorder(Color.black); // 创建蚀刻边框 etched = BorderFactory.createEtchedBorder(); // 创建凸出边框 raisedbevel = BorderFactory.createRaisedBevelBorder(); // 创建凹陷边框 loweredbevel = BorderFactory.createLoweredBevelBorder(); // 创建空的边框 empty = BorderFactory.createEmptyBorder(); // First pane: simple borders JPanel simpleBorders = new JPanel(); simpleBorders.setLayout(new BoxLayout(simpleBorders, BoxLayout.Y_AXIS)); addCompForBorder(blackline, "线状边框", simpleBorders); addCompForBorder(etched, "蚀刻边框", simpleBorders); addCompForBorder(raisedbevel, "凸出边框", simpleBorders); addCompForBorder(loweredbevel, "凹陷边框", simpleBorders); addCompForBorder(empty, "空的边框", simpleBorders); // Second pane: titled borders JPanel titledBorders = new JPanel(); titledBorders.setLayout(new BoxLayout(titledBorders, BoxLayout.Y_AXIS)); TitledBorder titled; titled = BorderFactory.createTitledBorder("title"); addCompForBorder(titled, "default titled border" + " (default just., default pos.)", titledBorders); titled = BorderFactory.createTitledBorder(blackline, "title"); addCompForTitledBorder(titled, "titled line border" + " (centered, default pos.)", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION, titledBorders); titled = BorderFactory.createTitledBorder(etched, "title"); addCompForTitledBorder(titled, "titled etched border" + " (right just., default pos.)", TitledBorder.RIGHT, TitledBorder.DEFAULT_POSITION, titledBorders); titled = BorderFactory.createTitledBorder(loweredbevel, "title"); addCompForTitledBorder(titled, "titled lowered bevel border" + " (default just., above top)", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.ABOVE_TOP, titledBorders); titled = BorderFactory.createTitledBorder(empty, "title"); addCompForTitledBorder(titled, "titled empty border" + " (default just., bottom)", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.BOTTOM, titledBorders); // 创建TabbledPane组件 JTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.addTab("简单的边框", null, simpleBorders, null); tabbedPane.addTab("带有标题的边框", null, titledBorders, null); tabbedPane.setSelectedIndex(0); getContentPane().add(tabbedPane, BorderLayout.CENTER); } // 添加带有标题的边框 void addCompForTitledBorder(TitledBorder border, String description, int justification, int position, Container container) { border.setTitleJustification(justification); border.setTitlePosition(position); addCompForBorder(border, description, container); } // 添加简单的边框 void addCompForBorder(Border border, String description, Container container) { JPanel comp = new JPanel(false); JLabel label = new JLabel(description, JLabel.CENTER); comp.setLayout(new GridLayout(1, 1)); comp.add(label); comp.setBorder(border); container.add(Box.createRigidArea(new Dimension(0, 10)));//设置间隔 container.add(comp); } // 程序的入口方法 public static void main(String[] args) { JFrame frame = new BorderDemo(); // 添加框架窗口的事件监听(监听关闭框架窗口事件) frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { // 正常推出Java虚拟机 System.exit(0); } }); // 显示框架窗口 frame.pack(); frame.setVisible(true); } }