Я пытаюсь расширить класс, чтобы в конечном итоге сделать пользовательскую кнопку.Я читал в нескольких местах, что лучше всего расширить как можно выше на иерархии (для лучшего полиморфизма?), Поэтому я пытаюсь расширить JComponent
:
import javax.swing.*;
import java.awt.*;
public class TestButton extends JComponent {
private static final long serialVersionUID = 1L;
public TestButton() {
super();
}
}
И код, который вызывает этоэто:
b1 = new TestButton();
basePanel.add(b1,gbc); // (gbc is GridBagConstraints object)
Дело в том, что мой JComponent
не отображается в моем макете.Если я расширю класс как JButton
, это не вызовет проблем.В чем же дело?
Обновление:
К вашему сведению, это своего рода концептуальный вопрос новичка, я здесь далеко не опытен, очевидно.
Вот картинка для описания.Единственное, что изменилось, это extends ______
.
То, что должно происходить, это блок, заполненный пурпуром, такой же высоты, как желтый блок внизу.
То, что происходит, - это блок размера по умолчанию, у которого нет фона (черный цветот JFrame).
![enter image description here](https://i.stack.imgur.com/HPeHc.jpg)