Названный разделитель в Java Swing
Главная
Вопросы
Названный разделитель в Java Swing
Я хочу показать разделитель с заголовком в приложении Java Swing. Что-то типа
-------Текст-------
Я нашел некоторые сторонние библиотеки, предоставляющие эту функциональность:
Но меня интересует способ без использования стороннего API. Можем ли мы сделать это, расширив JSeparator? Как еще мы можем это сделать?
person
Harry Joy
schedule
13.07.2012
source
источник
Ответы (3)
Я думаю, вы могли бы использовать комбинацию MatteBorder и TitledBorder
MatteBorder mb = new MatteBorder(1, 0, 0, 0, Color.BLACK);
TitledBorder tb = new TitledBorder(mb, "Some Long Text", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION);
person
MadProgrammer
schedule
13.07.2012
Используйте TitledBorder. Например, вот так:
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.TitledBorder;
public class TestBorder {
protected void initUI() {
JFrame frame = new JFrame(TestBorder.class.getSimpleName());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
TitledBorder titledBorder = BorderFactory.createTitledBorder("Some title");
titledBorder.setTitleJustification(TitledBorder.CENTER);
panel.setBorder(titledBorder);
frame.add(panel);
frame.setSize(400, 300);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TestBorder().initUI();
}
});
}
}
person
Guillaume Polet
schedule
13.07.2012
Это просто и в нижнем регистре.
import javax.swing.border.*;
тогда
BevelBorder bedge=new BevelBorder(BevelBorder.RAISED);
lbl.setBorder(bedge);
------------------следующий тип границы
import javax.swing.border.*;
тогда
TitledBorder tedge=new TitledBorder(TitledBorder.CENTER);
lbl.setBorder(tedge);
person
Saquib_Azam
schedule
25.12.2015
TitledBorder
. - person Radu Murzea   schedule 13.07.2012