【问题标题】:Java Swing programming panel titleJava Swing 编程面板标题
【发布时间】:2013-10-04 04:01:39
【问题描述】:

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

是jabel还是面板中的标题

【问题讨论】:

    标签: java swing


    【解决方案1】:

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

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

    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);
            }        
        }        
    }
    

    【讨论】:

    • 还可以查看TitledBorder,如this answer 中所示。它不如这个解决方案中看到的多重边框那么好,但代码行数可能更少。
    猜你喜欢
    • 2012-01-07
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 2012-11-05
    • 1970-01-01
    • 2015-09-11
    相关资源
    最近更新 更多