JLabel - jak wyśrodkować tekst

0

Witam,
chcę zrobić labela z ramką i chcę aby tekst był zawsze pośrodku. Oto kod:

import java.awt.Color;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;

public class LabelTest extends JFrame {
	JLabel label;
	
	public LabelTest() {
		label = new JLabel();
		label.setText("jakis napis");
        label.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
        
        setSize(300, 300);
        add(label);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args) {
		LabelTest l = new LabelTest();
	}
}

co zrobić aby wyśrodkować ten label ?
Przy okazji niech mi ktoś powie między jakie znaczniki wklejać kod javy bo widziałem w innych postach, że na pewno nie wygląda to tak jak u mnie. Ja użyłem znacznika cpp.

0
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;

public class LabelTest extends JFrame {
        JLabel label;
        public LabelTest() {
        setLayout(new FlowLayout(FlowLayout.CENTER));
                label = new JLabel();
                label.setText("jakis napis");
        label.setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
       
        setSize(300, 300);
        add(label);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        }
       
        public static void main(String[] args) {
                LabelTest l = new LabelTest();
        }
}

< code=java >

 w znaczniku otwierającym bez spacji
Poczytaj o menadżerach rozkładu
0

Witam,

Do wyśrodkowania w poziomie masz:
label.setHorizontalAlignment(JLabel.CENTER);
w pionie
label.setVerticalAlignment(JLabel.CENTER);

pozdrawiam

0

zszcz: ta metoda z tego co wyczytałem jest do ustawiania tekstu jeśli label ma ikonę. Nie wiem jak to działa bo nie sprawdzałem. Wiem za to, że bez ikony ta metoda nie działa bo próbowałem.

Nie wiem czy jest inny sposób na to czy nie ale zrobiłem tak, że label umieściłem w osobnym panelu (label centralnie po środku panelu) i zamiast rysować ramkę labela narysowałem ramkę panelu. Chyba jednak nie ma w JLabel takiej opcji aby tekst automatycznie się środkował, a szkoda.

0

A uruchomiłeś mój kod ? Może nie zauważyłeś, że sie różni od twojego.

0

Jest taka opcja, żeby się tekst automatycznie centrował

label = new JLabel("jakiś napis",JLabel.CENTER);

1 użytkowników online, w tym zalogowanych: 0, gości: 1