组件布局学习/方法的参数中含有接口

  • 子类调用父类方法,方法参数为接口的使用例子:
    jpanel.setLayout(new GridLayout(0, 2, 5, 10));//调用JPanel从类 Container中继承的方法public void setLayout(LayoutManager mgr)( setLayout功能:设置此容器的布局管理器。)
    LayoutManager是接口 :public interface LayoutManager(功能:定义知道如何布置 Container 类的接口。)
    LayoutManager接口中有已实现类,其中包含类 GridLayout(public class GridLayout)
  • 组件上也可以添加组件
  • 接口中除了已实现类,另请参见也要看,如下图组件布局学习/方法的参数中含有接口_第1张图片
JButton p1 = new JButton();        p1.setBorder(BorderFactory.createLineBorder(Color.red, 3));//此句等同于p1.setBorder(new LineBorder(Color.red, 3));
p1.add(new JLabel("线边框"));//**组件上也可以添加组件**
panel.add(p1);

  • 例子代码
public class CopyOfMainInterface {
    public static void main(String[] args) {
        JFrame frame = new JFrame("Swing边框演示");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(0, 2, 5, 10));
        panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

        JButton p1 = new JButton();
        JButton p11 =new JButton();
        p1.setBorder(BorderFactory.createLineBorder(Color.red, 3));
        p1.setLayout(new GridLayout(2 , 2, 1,1));
        p1.add(new JLabel("线边框"));
        p1.add(p11);
        panel.add(p1);

        JPanel p2 = new JPanel();
        p2.setBorder(BorderFactory.createEtchedBorder());
        p2.add(new JLabel("蚀刻边框"));
        panel.add(p2);

        JPanel p3 = new JPanel();
        p3.setBorder(BorderFactory.createRaisedBevelBorder());
        p3.add(new JLabel("斜面边框(凸)"));
        panel.add(p3);

        JPanel p4 = new JPanel();
        p4.setBorder(BorderFactory.createLoweredBevelBorder());
        p4.add(new JLabel("斜面边框(凹)"));
        panel.add(p4);

        JPanel p5 = new JPanel();
        p5.setBorder(BorderFactory.createTitledBorder("标题"));
        p5.add(new JLabel("标题边框"));
        panel.add(p5);

        JPanel p6 = new JPanel();
        TitledBorder tb = BorderFactory.createTitledBorder("标题");
        tb.setTitleJustification(TitledBorder.RIGHT);
        p6.setBorder(tb);
        p6.add(new JLabel("标签边框(右)"));
        panel.add(p6);

        JPanel p7 = new JPanel();
        p7.setBorder(BorderFactory.createMatteBorder(1, 5, 1, 1, Color.yellow));
        p7.add(new JLabel("花色边框"));
        panel.add(p7);

        JPanel p8 = new JPanel();
        javax.swing.border.Border b1 = BorderFactory.createLineBorder(Color.blue, 2);
        javax.swing.border.Border b2 = BorderFactory.createEtchedBorder();
        p8.setBorder(BorderFactory.createCompoundBorder(b1, b2));
        p8.add(new JLabel("组合边框"));
        panel.add(p8);

        JScrollPane scrollPane = new JScrollPane(panel);
        scrollPane.setPreferredSize(new Dimension(300, 300));
        frame.getContentPane().add(panel);
        frame.pack();
        frame.setVisible(true);
    }
}

组件布局学习/方法的参数中含有接口_第2张图片

你可能感兴趣的:(JAVA)