如何在不重复代码的情况下创建JLabels(或其他元素)?

时间:2018-10-01 00:27:42

标签: java swing builder

我搜索了一段时间,但找不到任何相关信息。举例来说,我将创建很多JLabel,但是不必为每个JLabel重新键入所有内容,而是可以使用一种方法,让我输入想要的内容并为我创建它们。我将如何去做?我下面有一个小例子。

private JLabel LabelBuilder(JLabel label, String text, int x, int y, int width, int height)
{
    label = new JLabel(text);
    label.setBounds(x, y, width, height);
    label.setOpaque(true);
    label.setBackground(Color.WHITE);
    label.setHorizontalAlignment(SwingConstants.CENTER);
    window.add(label);
}

public void SetupElements()
{
    LabelBuilder(labelName, "Text", 10, 10, 200, 20);
}

我该如何退货?有没有比这更有效的方法?预先感谢!

1 个答案:

答案 0 :(得分:0)

要回答我将如何退货?

    private void setupElements()
    {
        JLabel aLabel = labelBuilder("Text", 10, 10, 200, 20);
    }

    //No need for a `JLabel label` argument.
    //Method names start with lower case. see: https://www.geeksforgeeks.org/java-naming-conventions/
    private JLabel labelBuilder(String text, int x, int y, int width, int height)
    {
        JLabel label = new JLabel(text);
        //setting bounds is not recommended. Instead the parent container (window) needs 
        //to implemenent layout manager. See https://docs.oracle.com/javase/tutorial/uiswing/layout/layoutlist.html
        label.setBounds(x, y, width, height);
        window.add(label);
        return label;
    }