Удалить зазор между кнопками и закругленными углами

1

У меня есть эта jpanel с 2 кнопками внутри

Изображение 174551

Я хочу удалить пробел между кнопками и удалить закругленные углы, чтобы он выглядел примерно так:

Изображение 174551

Прямо сейчас я использую GridLayout(1,2,0,0)

Редактировать:

    JButton englishBtn = new JButton();
    JButton polishBtn = new JButton();

    Font verdana = new Font("Verdana", Font.PLAIN, 11);
    englishBtn.setText("EN");
    englishBtn.setFont(verdana);
    englishBtn.setFocusable(false);
    englishBtn.setBackground(new Color(5, 74, 127));
    englishBtn.setForeground(Color.WHITE);

    polishBtn.setText("PL");
    polishBtn.setFont(verdana);
    polishBtn.setFocusable(false);
    polishBtn.setBackground(new Color(153, 0, 0));
    polishBtn.setForeground(Color.WHITE);

    JPanel langPanel = new JPanel();
    GridLayout langLayout = new GridLayout(1, 2, 0, 0);
    langPanel.setLayout(langLayout);
    langPanel.add(englishBtn);
    langPanel.add(polishBtn);
  • 0
    Пожалуйста, оставьте свой код ..
Теги:
layout
swing

2 ответа

2

Попробуйте использовать setHgap и setVgap равным нулю.

Эта документация может помочь вам -

http://download.java.net/jdk7/archive/b123/docs/api/java/awt/GridLayout.html#setHgap(int)

  • 0
    Я установил его в конструкторе new GridLayout(1, 2, 0, 0) но разрыв все равно проявляется.
  • 0
    Не используйте его в конструкторе - Попробуйте langLayout.setHgap(0); и langLayout.setVgap(0);
Показать ещё 1 комментарий
1

Возьмем класс, который связывает интерфейс границы следующим образом

class RoundedBorder implements Border {
int radius;
RoundedBorder(int radius) {
this.radius = radius;
}
public Insets getBorderInsets(Component c) {
return new Insets(this.radius+1, this.radius+1, this.radius+2, this.radius);
}
public boolean isBorderOpaque() {
return true;
}
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
g.drawRoundRect(x,y,width-3,height-3,radius,radius);
g.setColor(Color.red);
c.setForeground(Color.red);
}
}

Теперь о собственности вашей кнопки, т.е. button.set "b1.setBorder (новый RoundedBorder (50));" передайте радиус, который вы хотите, в качестве аргумента RoundedBorder (radius).

Надеюсь, это помогло вам.

  • 0
    Пожалуйста, исправьте форматирование, интервал и отступ в вашем ответе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню