Java Swing编程面板标题

时间:2013-10-04 04:01:40

标签: java swing

看屏幕短 如何添加步骤和选择项目

是小组中的jabel还是标题

image

1 个答案:

答案 0 :(得分:3)

这可以通过使用Swing中提供的Border API来完成。仔细查看How to use borders了解更多详情。

作为一个非常粗略的例子......

enter image description here

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.MatteBorder;

public class PanelTitles {

    public static void main(String[] args) {
        new PanelTitles();
    }

    public PanelTitles() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                }

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new TitlePane(), BorderLayout.NORTH);
                frame.add(new JLabel("This is the content"));
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TitlePane extends JPanel {

        public TitlePane() {
            setLayout(new BorderLayout());            
            setBorder(new CompoundBorder(new EmptyBorder(4, 4, 4, 4), new MatteBorder(0, 0, 1, 0, Color.BLACK)));
            JLabel label = new JLabel("This is a title");
            label.setFont(label.getFont().deriveFont(Font.BOLD));
            add(label);
        }        
    }        
}