Что мне нужно сделать, чтобы поместить текст в центр объекта Swing BorderLayout?

Я изучаю библиотеку Java swing и создал первый простой пример Hello World, который печатает сообщение Hello World в области BorderLayout.CENTER и помещает несколько кнопок в окружающую область.

Это мой код:

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;

import org.jdesktop.application.SingleFrameApplication;

public class Main extends SingleFrameApplication {

    /*
    @Override
    protected void startup() {
        // TODO Auto-generated method stub
        show(new JLabel("Hello World"));
    }
    */

    public static void main(String[] args) {
        Main a = new Main();
        a.startup();
    }


    @Override protected void startup() {
        /*
        JLabel label = new JLabel();
        label.setName("label");
        show(label);
        */
        JFrame frame = new JFrame("FrameDemo");                     // Creo il frame e gli setto il titolo

        /* What happens when the frame closes: EXIT_ON_CLOSE operation exits the program when your user closes the frame.
         * Utile se il programma contiene un solo frame: chiudere il frame significa chiudere l'intera applicazione
         */
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);       

        JLabel myLabel = new JLabel("Hello World !!!");

        myLabel.setPreferredSize(new Dimension(600, 300));

        // Ottengo il riquadro del contenuto e gli aggiungo la label creata in una determinata posizione:

        frame.getContentPane().add(myLabel, BorderLayout.CENTER);

        frame.getContentPane().add(new Button("North"), BorderLayout.NORTH);
        frame.getContentPane().add(new Button("South"), BorderLayout.SOUTH);
        frame.getContentPane().add(new Button("East"), BorderLayout.EAST);
        frame.getContentPane().add(new Button("West"), BorderLayout.WEST);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

}

Как вы можете видеть, сообщение Hello World появляется слева от области BorderLayout.CENTER. Что я должен сделать, чтобы поместить этот текст в центр области CENTER?

Tnx

Andrea

1 ответ

Решение
JLabel myLabel = new JLabel("Hello World !!!", SwingConstants.CENTER);

или же

myLabel.setHorizontalAlignment(SwingConstants.CENTER);

Javadocs - ваш друг: JLabel.setHorizontAlignment.

Другие вопросы по тегам