У меня есть эта jpanel с 2 кнопками внутри
Я хочу удалить пробел между кнопками и удалить закругленные углы, чтобы он выглядел примерно так:
Прямо сейчас я использую 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);
Попробуйте использовать setHgap
и setVgap
равным нулю.
Эта документация может помочь вам -
http://download.java.net/jdk7/archive/b123/docs/api/java/awt/GridLayout.html#setHgap(int)
new GridLayout(1, 2, 0, 0)
но разрыв все равно проявляется.
langLayout.setHgap(0);
и langLayout.setVgap(0);
Возьмем класс, который связывает интерфейс границы следующим образом
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).
Надеюсь, это помогло вам.