Как я могу написать текст на границе JPanel в Java? - PullRequest
0 голосов
/ 07 марта 2020

Я работаю над GUI в Java, и у меня есть следующий код:

public class MainWindow extends JFrame {

    public MainWindow () {
        setUpWindow();

        JPanel upperPanel = new JPanel();
        JPanel lowerPanel = new JPanel();

        upperPanel.setBorder(new LineBorder(Color.GRAY, 1));
        lowerPanel.setBorder(new LineBorder(Color.GRAY, 1));




        getContentPane().add(upperPanel, BorderLayout.NORTH);
        getContentPane().add(lowerPanel, BorderLayout.SOUTH);
    }

    private void setUpWindow () {
        setSize(600, 450);
        setTitle("Subjects");
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setResizable(false);
        setLayout(new BorderLayout());
        getRootPane().setBorder(BorderFactory.createMatteBorder(4,4,4,4,Color.LIGHT_GRAY));
        setVisible(true);
    }
}

Если я скомпилирую это, я получу вывод: enter image description here

Как вы можете видеть, у меня есть один JPanel в NORHT, а другой на Юге.

Я хочу добавить текст на границе JPanel, чтобы я мог получить в качестве вывода что-то похожее как это:

enter image description here

Я пробовал несколько вещей, но я не знаю как. Есть ли метод JPanel, который делает это? Должен ли я создать JLabel и как-то поместить его туда?

Заранее спасибо.

1 Ответ

4 голосов
/ 07 марта 2020

То, что вы ищете, это BorderFactory . Его можно применять следующим образом:

upperPanel.setBorder(BorderFactory.createTitledBorder("Favorite subjects"));

Подробное описание JPanels, Borders и возможностей (с примерами) см. В статье Oracle Как использовать границы .

...