Как мне создать JLabels (или другие элементы) без повторения кода? - PullRequest
0 голосов
/ 01 октября 2018

Я искал некоторое время и ничего не мог найти по этому поводу.Скажем, например, я буду создавать много JLabels, но вместо того, чтобы перепечатывать все для каждого 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 голосов
/ 01 октября 2018

Ответить Как мне его вернуть?

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