JLabel中的超级方法继承了类

时间:2018-05-06 08:41:27

标签: java swing constructor jlabel

我正在学习Swing GUI。以下程序创建一个包含彩色标签的窗口。除了继承Mylabel的{​​{1}}类中的构造函数之外,我已经理解了整个代码。代码是:

JLabel

MyLabel

class MyLabel extends JLabel { public MyLabel() { super("", null, LEADING); } @Override public boolean isOpaque() { return true; } }

StandardColoursEx

请解释public class StandardColoursEx extends JFrame { public StandardColoursEx() { initUI(); } private void initUI() { Color[] stdCols = {Color.black, Color.blue, Color.cyan, Color.darkGray, Color.gray, Color.green, Color.lightGray, Color.magenta, Color.orange, Color.pink, Color.red, Color.white, Color.yellow}; List<JLabel> labels = new ArrayList(); for (Color col : stdCols) { JLabel lbl = createColouredLabel(col); labels.add(lbl); } createLayout(labels.toArray(new JLabel[labels.size()])); setTitle("Standard colours"); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); } public JLabel createColouredLabel(Color col) { MyLabel lbl = new MyLabel(); lbl.setMinimumSize(new Dimension(90, 40)); lbl.setBackground(col); return lbl; } private void createLayout(JLabel[] labels) { JPanel pane = (JPanel) getContentPane(); GroupLayout gl = new GroupLayout(pane); pane.setLayout(gl); pane.setToolTipText("Content pane"); gl.setAutoCreateContainerGaps(true); gl.setAutoCreateGaps(true); gl.setHorizontalGroup(gl.createParallelGroup() .addGroup(gl.createSequentialGroup() .addComponent(labels[0]) .addComponent(labels[1]) .addComponent(labels[2]) .addComponent(labels[3])) .addGroup(gl.createSequentialGroup() .addComponent(labels[4]) .addComponent(labels[5]) .addComponent(labels[6]) .addComponent(labels[7])) .addGroup(gl.createSequentialGroup() .addComponent(labels[8]) .addComponent(labels[9]) .addComponent(labels[10]) .addComponent(labels[11])) .addComponent(labels[12]) ); gl.setVerticalGroup(gl.createSequentialGroup() .addGroup(gl.createParallelGroup() .addComponent(labels[0]) .addComponent(labels[1]) .addComponent(labels[2]) .addComponent(labels[3])) .addGroup(gl.createParallelGroup() .addComponent(labels[4]) .addComponent(labels[5]) .addComponent(labels[6]) .addComponent(labels[7])) .addGroup(gl.createParallelGroup() .addComponent(labels[8]) .addComponent(labels[9]) .addComponent(labels[10]) .addComponent(labels[11])) .addComponent(labels[12]) ); pack(); } public static void main(String[] args) { EventQueue.invokeLater(() -> { StandardColoursEx ex = new StandardColoursEx(); ex.setVisible(true); }); } } 类中的超级构造函数及其使用原因。

1 个答案:

答案 0 :(得分:2)

您正在扩展JLabel类, JLabel,你真是太棒了 这里是JLabel constructor with 3 parameters

文档的链接