Я не считаю, что это возможно со стандартными границами, главным образом потому, что Border
не является Container
, и поэтому не может быть добавлен к нему другие компоненты.
Но, если вы готовы пойти на реализацию таможенной границы, можно подделать границы, например:
private class BorderFaker extends JPanel
{
public BorderFaker()
{
add(new JButton("Faked!"));
}
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
drawFauxBorder(g);
}
private void drawFauxBorder(Graphics g)
{
g.setColor(UIManager.getColor("border"));
g.drawRect(15, 15, getWidth() - 30, getHeight() - 30);
}
}
Это показывает, как вы могли сделать это, но он вводит много проблем, таких как различие между компонентами, которые вы хотите видеть внутри границы или на границе (я только жестко запрограммировал кнопку «Faked!» для демонстрации). И вам еще предстоит организовать компоновку компонентов относительно «границы». Это потребует некоторой осторожной обработки компонентов и удобной компоновки - как первоначально предлагалось @trashgod.
Тем не менее, я не знаю, я бы предпочел сделать что-то подобное и подделать границу, чем подделка, нарисовав кнопку. Если вы нарисуете свою собственную кнопку, вы потеряете соответствие текущему виду и ощущению, и, если вы не будете делать все, что делает пользовательский интерфейс кнопки (обрабатывать опрокидывания, вооруженное состояние и т. Д.), Вряд ли он будет выглядеть хорошо.
Спасибо. Как я думал ... Ну, кажется, я выбрал правильный путь - собираюсь использовать изображения. Это будет компонент качания для netbeans. Вот почему. Легче создать класс ImageButton (с состояниями, опрокидываниями и т. Д.). И более удобно для моих целей. Кроме того, эти кнопки определенно будут маленькими значками. Итак ... В любом случае, еще раз спасибо :) – imp