Использование BorderFactory для создания границ
Чтобы добавить границу к компоненту или контейнеру, вы можете использовать java BorderFactory который предоставляет множество типов границ Swing. Три шага для создания границы:- Создайте границу, создав экземпляр Border.
- Выберите стиль границы с помощью BorderFactory.create... ().
- Модифицировать компонент "JComponent" с помощью метода setBorder.
LineBorder
This method BorderFactory.createLineBorder(Color, int) создает одну границу. Первый параметр представляет цвет, а второй, ширину линии.Следующий код создает Border в JLabel и JPanel.
import java.awt.BorderLayout;Output
импорт java.awt.Color;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;
public class BorderFactoryExample extends JPanel{
public BorderFactoryExample(){
JFrame f = new JFrame("BorderFactoryExample");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
панель JPanel = новая панель JPanel();
метка компонента "JLabel" = новая метка "JLabel"(" lineBorder");
label.setPreferredSize(new Dimension(100, 100));
panel.add(метка);
panel.setPreferredSize(new Dimension(200,125));
//создаем границу черной линии и минимальную ширину 1
Border lineborder = BorderFactory.createLineBorder(Color.black, 1);
//связываем с "JLabel
label.setBorder(lineborder);
f.getContentPane().setLayout(new BorderLayout());
f.add(new JLabel(" "), BorderLayout.NORTH);
//настроить на center
f.add(panel, BorderLayout.CENTER);
f.pack();
}
public static void main(String[] args) {
new BorderFactoryExample();
}
}
EtchedBorder
Etched означает выгравированное на французском языке, либо снаружи: EtchedBorder.RAISED, либо изнутри: EtchedBorder.LOWERED.RAISED
Border EtchedBorderRaised = BorderFactory.createEtchedBorder(EtchedBorder.RAISED);
Border EtchedBorderLowered = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
RaisedBevelBorder
Создает рамку в виде свободной кнопки со светлыми оттенками и более темными оттенками для теней.
Создает границу в виде нажатой кнопки со светлыми и более темными оттенками для теней.
Border LoweredBevelBorder = BorderFactory.createLoweredBevelBorder();
Создаем границу с 5 параметрами, первые 4 обрабатываем ширину левой, правой, верхней и нижней линии, и последний для раскрашивания краев.
Border matteborder = BorderFactory.createMatteBorder(1, 1, 3, 1, Color.blue);
Вы также можете сделать его красивее, добавив значок, который изменяет дизайн вокруг границы:
ImageIcon icon = new ImageIcon("etoile.png");
Граница matteborder = BorderFactory.createMatteBorder(1, 1, 3, 1, icon);
TitledBorder
TitledBorder имеет пять конструкторов, мы решили сделать пример с тем, который включает в себя все параметры, которые позволяют добавить заголовок к границе с определенным стилем границы, position, font and color.
Border LoweredBevelBorder = BorderFactory.createLoweredBevelBorder();
Border EtchedBorderRaised = BorderFactory.createTitledBorder(LoweredBevelBorder, "title",
TitledBorder.LEFT,TitledBorder.TOP,
new Font("Arial", Font.PLAIN , 13), Color.black);
EtchedBorder
Этот стиль объединяет два стиля в один. Например, мы хотим нарисовать LineBorder внутри RaisedBevelBorder:
Border lineborder = BorderFactory.createLoweredBevelBorder();
Border RaisedBevelBorder = BorderFactory.createLineBorder(Color.blue);
Border EtchedBorderRaised = BorderFactory.createCompoundBorder(lineborder,
RaisedBevelBorder);
Oracle Документация: BorderFactory
java2s: create Используйте BorderFactory